python基础数据类型1
python基础数据类型1
part1:
''' ''': 三个单引号用于换行的字符串
字符串可以相加(拼接)相乘(重复)
在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
AGE_OF_OLDBOY = 56
- type: 判断类型
part2:
运算符
- / %
** :幂运算,求x的y次幂
// :整除 返回商的整除部分
逻辑运算符:
and or not
在没有括号情况下:not > and > or
str <=>int可以相互转化(字符串转数字int会自动去除空格)
int<=>bool : 可以相互转化(非0即True)
str<==> :非空即true
str<-->bool
s1=''
print(bool(s1))
s2=True
print(str(s2))
- 编码:(一个字节:8位)【1 byte = 8 bit】
ASCII码:1个英文字母:1个字节
GBK码: 1个英文字母:1个字节,1个中文,2个字节
Unicode: 无论中文英文: 4个字节
Utf-8: 升级: 最少用一个字节表示一个字符(a:一个字节,欧洲:2个字节 中文:3个字节)
格式化
input中输入的都是字符串
可以通过int将字符串转换成数字
也可以通过str将数字转化为字符串
格式化输出:
当你遇到这样的需求:字符串中想让某些位置变成动态可传入的,首先考虑到格式化输出。
while else (while没有被break终止则执行else)
pass: 过
part3
字符串
s1='python全栈22期'
1.按索引: s1[index]
2.按照切片: s1[start_index:end_index]
3.按照切片步长:s1[start_index:end_index:step]
4.反向按照切片步长:s1[start_index:end_index后延一位:-step]
5.
全取出来
s9=s1[:]
print(s9)
字符串常用操作方法
s='tAiBai'
1.s.upper() s.lower() 变成大小写
2.s.startswith('tA') s.endswith() 是否已某某开头或者结尾
3.s.replace('gg','xx',1) 替换
4.s.strip() 只能去除左右两边的
5.s.split() 默认按照空格分隔,返回一个列表
6.join (必须是字符串) s2=':'.join(l1)
7.count:数出某个字符串出现的次数
8.format:格式化输出(三种)
9.is系列
10. in 和 not in
part4:
列表
- 列表的创建:
方式一
li=[1,2,'alex']
方式2
li=list()
方式3:列表推导式
列表的索引,切片
列表的增删改查:
1.增:
1.append
2.insert
3.extend:迭代者增加(一个元素)一个一个的加上去
2.删除
1.pop按照索引位置删除
2.2.remove按照指定元素去删除,如果由重名元素,默认删除第一个
3.3.clear()清空所有[了解]
4.del1)按照索引删除2.按照切片删除 delli[-1] delli[::2]
3.改
1.按照索引改
2.按照切片改(了解)
3.按照切片步长改值(必须一一对应)
4.查
索引切片
列表的嵌套
tuple只读
1.查看
2.元组的拆包(一一对应)
3.元组应用场景:a.打包和解包操作:
# 打包
a = 1, 10, 100
print(type(a), a) # <class 'tuple'> (1, 10, 100)
解包
i, j, k = a
print(i, j, k) # 1 10 100
b.交换两个变量的值
a, b = b, a
a, b, c = b, c, a
需要说明的是,上面并没有用到打包和解包语法,Python的字节码指令中有ROT_TWO和ROT_THREE这样的指令可以实现这个操作,效率是非常高的。但是如果有多于三个变量的值要依次互换,这个时候没有直接可用的字节码指令,执行的原理就是我们上面讲解的打包和解包操作
c.让函数返回多个值
return语句中有两个值,这两个值会组装成一个二元组然后返回。所以调用find_max_and_min函数会得到这个二元组,如果愿意也可以通过解包语法将二元组中的两个值分别赋给两个变量
- range():看做:可以自己控制范围的数字列表,但是它不是列表
- 指定范围,生成指定数字
面试题:l1 = range(5)
print(l1[l1[1:3]]) #range(1,3) 但在python2中返回的是一个列表
print(l1[-1]) #4
for I in range(1,5,-1): print(i) # 没有东西
for I in range(5,1,-1): print(i) #5,4,3,2 #倒叙要从大到小
part5:
字典
- 数据类型的分类:
可变(不可哈希)的数据类型:list dict set
不可变(可哈希)的数据类型:str bool int tuple. 比如:str,对原字符的操作不会改变原字符串,而是形成一个新的字符串 (键应该是不可变数据类型)
- 字典的创建方式:
方式1:dic=dict((('one',1),('two',2),('three',3)))
方式2:dic=dict(one=1,two=2,three=3)
方式3(官方写法):dic=dict({'one':1,'two':2,'three':3})
验证字典的合法性:键应该是不可变数据类型
字典的增删改查
1.增:
1.直接增加有则改之,无则增加
2.setdefault()有则不变,无则增加
2.删:
1.pop()按照键去删除键值对返回值是删除对应的值(重要)#有第二个值不会报错,并且返回第二个值
2.clear()清空
3.del按照键删除,没有此键会报错
3.改:按键改
dic['name']='alex'
4.查:
1.直接没有会报错
2.get()(重要)可以设置返回值#没有此键时不会报错,并且返回第二个值
3.三个特殊的keys()values()items()
- 字典的嵌套
python基础数据类型1的更多相关文章
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- 1--Python 入门--Python基础数据类型
一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...
- python 基础数据类型之list
python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- Python基础数据类型题
Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...
- Python基础数据类型之字符串
Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
- 老男孩Python==基础数据类型考试题
转载 # Python基础数据类型考试题 # 考试时间:两个半小时 满分100分(80分以上包含80分及格) # 一,基础题. # 1, 简述变量命名规范(3分) # 1.变量由字母.数字.下划线任意 ...
随机推荐
- android JS 互相通讯
1.android中利用webview调用网页上的js代码. Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true ...
- 论文解读(XR-Transformer)Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification
Paper Information Title:Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text C ...
- Hive启动报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
报错详细: Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preco ...
- uniapp最简单的上拉加载更多demo
data() { return { list:[],//数据列表 page: 1,//页数 } }, //请求一下数据(进入页面请求一次) onLoad() { this.getnewsList(th ...
- 三个步骤,从零开始快速部署LoRaServer
2021年11月29日,ITU(国际电信联盟)标准化部门正式批准了LoRa联盟立项的"ITU-T Y.4480 Low power protocolfor wide area wireles ...
- oracle sqlplus不支持上下键查看历史记录问题
我们需要安装rlwrap软件 系统采样: [root@rac-2 src]# su - oracle Last login: Fri Mar 18 23:36:25 CST 2022 on pts/0 ...
- QT类使用记录
QT类使用记录 1.QSharedMemory 提供了对一段共享内存的访问.既提供了被多进程和多线程共享的一段内存的访问.也为单线程或单进程锁定内存以实现互斥访问提供了方法. QSharedMemor ...
- C++五子棋(五)——实现AI落子
AI思考落子点 在之前我们已经实现计算权值了,现在要想让AI落子,应根据之前的计算结果使棋子落在分值最大点上.当然可能会出现多个分值相同的最大点,这时在其中随机取一个点落下即可. chessData. ...
- Linux内核--链表结构(二)
Linux内核链表定义了一系列用于链表遍历的宏,本章详细描述. 一.container_of和offsetof 首先介绍两个很好用的宏container_of和offsetof.offsetof宏用于 ...
- Spring Authorization Server授权服务器入门
11月8日Spring官方已经强烈建议使用Spring Authorization Server替换已经过时的Spring Security OAuth2.0,距离Spring Security OA ...