2、python赋值与常量、常见数据类型及相关操作

(一)赋值与常量
1、链式赋值:将同一个对象赋值给多个变量 x=y=123 等价于 x=123 y=123
2、序列解包赋值:将系列数据(对象)分别赋值给对应个数的变量 a,b,c=1,2,3 等价于 a=1,b=2,c=3。
3、常量:python不支持常量,仅能通过命名规则(全大写)和在逻辑上要求不能更改来实现。
(二)数据类型与操作
对象有类型,python中的数据类型有整型、浮点型、布尔型、字符串型。
1、数字类型
数字类型包括整型和浮点型,能进行的数值操作包括+、-、*、/、//(整除)、%(模/取余)、**(幂次),divmod(返回商和余数):divmod(13,3)获得元组(4,1)。
1.1、整数
1.1.1、进制:多用于位运算
0b/0B 二进制:0 1
0o/0O 八进制:0 1 2 3 4 5 6 7
0x/0X 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
0b101取值为 5
0xff 取值为255(16*15+1*15)
0o10 取值为8(8*1+1*0)
1.1.2、类型转换:int()转数字为整数,去掉小数部分取整,布尔型对应0/1,字符串符合整数格式(浮点数格式不行)可转。
自动转型:浮点数和整数运算结果为浮点数
数据大小没有限制,所以适合科学运算。
1.2、浮点型
有a*Eb表示,科学计数法,在内存中也是按照科学计数法存储。
通过float()进行类型的强制转换。round()对变量四舍五入(不是改变原值(对象)而是生成新值(对象))。增强型赋值操作:+、-、*、/、//、%、**与=连接(中间不能有空格)例如:a+=1等价于a=a+1
1.3、时间
计算机的时间是从1970年1月1日 00:00:00开始。以毫秒(1/1000秒)进行计算。time.time()获取当前时刻,以秒为单位。
1.4、布尔值
布尔值类型取值为True或False,本质上是数字0和1。可进数值计算(当数字0/1)、比较运算、逻辑运算。
比较运算包括==、>、<、>=、<=、!=。
逻辑运算包括:x or y(如果x为true不计算y则返回true,为false返回y)、x and y(如果x为false不计算y则返回false,为true返回y)、not x。
1.5、is/not is
is/not is 比较的是标识符引用的对象的地址是否一样(标识符是否引用同一对象),==比较的是两个变量引用的对象值是否相同,调用对象的__eq__方法。python有缓存机制,命令行运行[-5,256]之间的整数对象地址一样(同一对象),Pycharm或保存为文件运行时[-5,正无穷]之间的数字对象地址一样(同一对象)。
1.4、字符串
字符串本质就是字符序列,python字符串不可变,支持Unicode,默认16位,ord()获取字符的Unicode编码,chr()获取Unicode编码对应的字符。创建字符串可以用单引号或双引号,三个单引号或三个双引号可以创建多行字符。可以创建空字符’‘,len()计算包含多少字符,中英文都是算1位。
1.4.1、转义字符:\+特殊字符 可以表现某些效果(print()才可显示效果),续行\,换行\n,退格\b,制表符\t,\r回车。
1.4.2、拼接:‘a’+‘b’得到‘ab’(加号两边类型不一样会报错),‘a’‘b’得到‘ab’
1.4.3、复制:‘a’*3得到‘aaa’
1.4.4、不换行打印:print(,end=‘’)设置end,默认end为换行符
1.4.5、控制台读取字符:input()
1.4.6、其他类型对象转字符串类型:str(),调用print()时,解释器会调用str()将非字符串对象转为字符串对象。
1.4.7、提取字符(单个字符):[]可以按偏移量对字符串的字符进行提取,左侧从0开始,右侧从-1开始
1.4.8、字符串不可变,a[0]='1’会报错,replace方法生成新的字符串对象,原有的字符串对象不变。
1.4.9、切片操作:字符串[起始偏移量:终止偏移量:步长],包头不包尾,步长为负从右侧开始,起始偏移量、终止偏移量超出字符串范围不会报错。
1.4.10、字符串分割:split(分割符),生成字符串列表,默认分割符为空白字符(换行符/空格/制表符)。
1.4.11、字符串连接:连接字符串.join(字符串列表),split的逆操作。
效果与’+‘拼接一样,但是效率更高,多字符串拼接join只生成一个对象(先计算所有字符串长度然后逐一拷贝),’+‘每拼接一次生成一个对象。
1.4.12、驻留机制:仅保留一份相同且不可变字符串方法,不同的值被存放在字符驻留池中。
对符合标识符规则(仅包含字母数字下划线)的字符串,有多个变量引用,引用的是同一个字符串对象。不符合标识符规则的字符串,有多个变量引用,引用的是多个字符串对象(值相同)。
例如:a=‘abc_33’,b=‘abc_33’,a、b同一对象
a=‘dd#’,b=‘dd#’,a、b不同对象
1.4.13、字符串比较:==、!=比较的是值,is、not is 比较的是id。
1.4.14、成员操作符:in ,not in 判断某个字符(子字符串)是否存在于字符串中。
1.4.14、其他操作
字符串长度:len(a) 返回96
指定字符开头:a.startswith(‘a’) 返回True
指定字符结尾:a.endswith(‘a’) 返回True
第一次出现指定字符的位置:a.find(‘a’) 返回2
最后一次出现指定字符符位置(反向第一次):a.rfind(‘a’) 返回29
字符串出现几次:a.count(‘a’) 返回3

去除首尾指定符号(默认去除空白符号):a.strip(‘*’)去除首尾‘*’;a.lstrip(‘*’)去除首‘*’;a.rstrip(‘*’)去除尾‘*’。

大小写转换
首字母大写(生产新字符串):a.capitalize()
单词的首字母大写(生产新字符串):a.title()
全部字母大写(生产新字符串):a.upper()
全部字母小写(生产新字符串):a.lower()
原大写转小写、原小写转大写(生产新字符串):a.swapcase()
格式排版:a.center(长度,填充字符)(字符串居中)、ljust(长度,填充字符)(字符串居左)、rjust(长度,填充字符)(字符串居右)

所有字符全是 字母或数字:a.isalnum() 返回False
字符串是否只有字母组成(含汉字):a.isalpha()
字符串是否只有数字组成(不含小数点):a.isdigit()
字符串是否为空白符:a.isspace()
字符串是否都是大写字母:a.isupper()
字符串是否都是小写字母:a.islower()

1.4.15、数字格式化
通过位置顺序:
a='名字是{0},年龄是{1}’
a.format(‘XX’,18) ##输出 名字是XX,年龄是18
通过参数名称,顺序无关
a='名字是{name},年龄是{age}’
a.format(age=18,name=‘XX’,) ##输出 名字是XX,年龄是18
对齐:
{参数/索引:填充符号 对齐方式 位数}, 对齐方式包括居中^、左对齐<、右对齐>,填充符号只能是一个字符默认为空格填充。
例如“{:*>3}”.format(‘3’) ##输出‘**3’
数字格式化:f表示浮点数,d表示整数,
保留小数:“{:.2f}”.format(‘3.1415’) 输出 3.14
百分比:“{:.2%}”.format(‘0.25’) 输出 25.00%
科学计数法:“{:.2e}”.format(‘100’) 输出 1.00E+02

你可能感兴趣的:(python)