变量
- 变量是计算机中内存的一块区域,用类似专门存储固定范围的值
变量的命名法
变量本身没有数据类型的概念
- 是由所有整数组成的,类型为int,属于不可变序列,例如a=-3、b=256等
- 常见的整数都以十进制来表示的,当然还有以二进制、八进制、十六进制形式表示的
注意:进制越⼤表现形式越短,出现其他进制是为了更⽅便的表示数据
产生进制的原因就是为了方便读取数据 二进制逢二进一,用0b前缀和0-1表示,例如0b11。python 中用 bin() 将十进制转为二进制 二进制转换成十进制的换算:乘二次幂的过程 例如0b110转换成十进制为02+12+1*2=6 十进制转换成二进制的换算:除二取余的过程 例如3转换成二进制为 3/2=1…1 1/2=0…1 0/2=0…0 故为0b011 八进制逢八进一,用0o前缀和0-7表示,例如0o45。python 中用 oct() 将十进制转为八进制 十六进制逢十六进一,用0x前缀和0-9,a-f表示,例如:0xff00。python 中使用 hex() 将十进制转为十六进制
整数的内存:整数长度为32位,计算机的不同其id值也不同,但相邻的数是连续分配空间的。
- 小整数对象池:范围是-5——256,可以方便调用,增加运行速度,避免重复生成。
整数缓冲区:意思是刚刚被删除的整数不会立刻被回收,而是在后台内缓冲一段时间等待下一次被调用。值得注意的是,在交互模式中不能演示出效果,在pycharm中能够实现。
浮点数
浮点数是由所有的小数组成,它是float类型。例如a=18.3、b=-0.06等
- 对于很小的数或很大的数,可以用科学记数法表示。如3020000=3.02e6、0.00096=9.6e-4
整数与浮点数间可以相互转化。例如int(3.5)=3、int(-9.6)=-10、float(3)=3.0、float(-9)=-9.0等
复数
由实部和虚部组成,形如a+bj,表示成complex(a,b)
-
数学计算
在数学计算过程中,除了常见的加减乘除外,更多的运算需要导入math库,而不需要安装。
import math #导入math库
math.ceil() #向上取整
math.floor() #向下取整
math.pow(x,y) #等同于x**y,返回的是浮点数
abs(x) #对x取绝对值,复数是是对其取模
round(x) #进行四舍六入五取偶
布尔
布尔用bool表示,它只有两个值,分别是True和False,这里面类型是固定,其它写法均错误。
- 空值:不是布尔类型,而是特殊的值,用None表示,且手写方式唯一。空值类型是None Type,因此不能理解为0,也不能理解为布尔类型,但None的布尔值永远为False。
- 非空字符串的布尔值永远为True。
字符串
创建与存储
- 字符串是由数字、字母、下划线等组成的一串字符,用str表示。
- 字符串的创建:
- 采用单引号或双引号即可,注意的是这里面单双引号不能混用,相同引号之间不能够嵌套;
- 利用三引号创建的是多行字符串,它能够保留文本格式和文字样式。
- 常见转义字符: \n—>换行符 \t—>制表符 \—>\ \’—>’ \’’—>’’
- 存储方式中整数在内存中占一个字节,字符串是把所有内容拆开单独存储
索引与切片
- 字符串可以通过下标将里面的元素取出,下标也是索引,左右到右默认从0开始。
- 切片就是 slice(start, stop, [, step]),这里面起始位置默认为0、结束位置默认最后一个元素,且满足左闭右开;可选参数:步长,默认为1。
- 在索引和切片时需要知道字符串的长度时,可用len()获取。
运算
- 拼串:将两个字符串相加即可实现拼串
- 参数的传递
- 字符串格式化
- 在创建字符串时,在字符串中指定占位符,如%s 字符串占位 %f 浮点数占位 %d 整数占位
- s.format()
- python 3.6以后出现 f
字符串常见操作
S.find(sub) --> 返回该元素最小的索引
S.index(sub) --> 返回该元素最小的索引
S.replace(old, new[, count]) --> 替换
S.split(sep=None) --> 以sep来分割字符串,并返回列表。sep默认为None,分割默认为空格
S.startswith(prefix[, start[, end]]) --> 判断字符串是否以前缀开始,返回为bool值。
S.endswith(suffix[, start[, end]]) --> 判断字符串是否以尾缀结束,返回为bool值。
S.lower() --> 将字符串全部转为小写
S.upper() --> 将字符串全部转为大写
S.strip([chars]) --> 默认去掉字符串左右的空格
S.isalpha() --> 判断字符串是否全为字母,返回的是bool值
S.isdigit() --> 判断字符串是否全为数字,返回的是bool值
S.isalnum() --> 判断字符串是否全为数字或者字母,不存在特殊字符,返回的是bool值
S.join(iterable) --> 将序列中的元素以指定的字符连接生成一个新的字符串
S.find()
s1 = 'xiaopang dese'
print(s1.find('i')) # 1 返回索引,且最小
print(s1.find('a')) # 2
print(s1.find('c')) # -1 没有,且不会报错
print(s1.rfind('a')) # 5 r代表右边
S.index()
- S.replace(old, new[, count])
- S.split
- S.startswith(prefix[, start[, end]]) —> 判断字符串是否以前缀开始,返回为bool值。 S.endswith(suffix[, start[, end]]) —> 判断字符串是否以尾缀结束,返回为bool值。
S.lower()、S.upper() —> 将字符串全部转为小写或大写
s = 'Pangge and Fagao'
print(s.upper()) # PANGGE AND FAGAO
print(s.lower()) # pangge and fagao
S.strip([chars]) —> 默认去掉字符串左右的空格
- 左面去空格lstrip()
- 右面去空格rstrip()
- 其他
- len()获取字符串的长度 max()字符串中的最大值 min()字符串中的最小值
- ord()将字符转为对应ASCII值 chr()将ASCII值转为对应的字符
转义字符
| \n | 换行符 | | —- | —- | | \t | 横向制表符 | | \v | 纵向制表符 | | \r | 回车符 | | \f | 换页符 | | \0 | 空值 | | \‘ | 单引号(’) | | \‘’ | 双引号(’’) | | \\ | \ | | \a | 响铃 | | \b | 退格 |
小练习
- 当输入y或Y打印进入卸载,当输入n或N打印退出程序,输入其它则打印输入不在选项范围之内。
- 完成字符串的逆序以及统计:设计一个程序,要求只能输入长度低于20的字符串,当满足需求时,则打印出字符串长度以及使用切片逆序打印出字符串;当不满足需求时,打印用户重新输入 。
- ‘3’+ ‘4’ 的结果是什么?
‘3’ + ‘4’的结果是’34’,这里’3’ 和 ‘4’都是字符串,它们相加意味着相互拼接,而不是数值上的相加。