Python 03
1 基本数据类型
1.1 整数和小数
1.1.1 整数
- 数据类型:int
- 在计算机中整数有最大值,因为计算机的存储能力有限,如超过会出现内存溢出的现象
- 次幂的表示方法,例如:2 的1000 次幂表示为:2**1000
- 为体现直观性,整数 a = 123456789 还可表示为 a = 123_456_789
1.1.2 小数
-
数据类型:float
-
只要有浮点型(float)数据参与运算,结果就是浮点型(float)数据
-
浮点数计算有时不能得到精确结果,但得到的结果无限接近于精确结果
产生这种现象的原因:计算机在计算时要转换为二进制进行计算
1.2 布尔值和空值
- 布尔值:True 和 False, 用于做逻辑判断
- 布尔值属于特殊的整型变量,它们的值为:True = 1, False = 0
例如:while 1 相当于 while true - 空值:None
1.3 变量和自变量
- 变量:计算机内存中的一块区域,用来存储规定范围内的值
- 字面量:一个一个的值:1 2 3 6.66等等
- 变量可以用来保存字面量
- 一个数据不确定、需要用到、需要处理的时候用变量
2 字符串
2.1 基本概念
- 定义:由数字、字母、下划线组成的一串字符,例如“python”是由“p” “y” “t” “h” “o” “n”六个字符串起来的字符串
- 字符串可以用两个单引号或者两个双引号引起来,但是不能用一个单引号和一个双引号
- 相同的引号之间不能嵌套,例如,不能输入‘what’s up’,若引用的字符串中有单独的单引号,可以用双引号引用,即为“what’s up”。
- 长字符串:用三重引号表示,可以保留字符串中的格式(三重引号也表示多行注释)
2.2 转义字符
- \t 表示制表符
- \n 表示换行符
- \ 表示反斜杠\
- \’ 表示字符串中的单引号’
- \”表示字符串中的双引号”
- r 为原始字符串,r +’’则’’内一定为字符串
2.3 字符串的格式化
2.3.1 基本概念
- 两个整数之间做运算可以得到运算的结果,两个字符串之间做运算则为将两个字符串进行拼接
- 只有相同类型的变量才可以进行运算,若不同类型的变量进行运算,可以使用转型
例如:6 为整型(int 类型)变量,’ 6 ’ 为字符串变量(str 类型),若直接执行 6 + ’ 6 ’ 会报类型错误 TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’ 。通过 int 将字符串变量转换为整型变量之后两变量可以相加,即执行 6 + int (’ 6 ') 等效于执行 6 + 6 结果为整数 12
2.3.2 字符串格式化的方式
方式一:拼串(print(‘s=’+ s))
- 例:
s = 'hello'
print('s = ' + s)
运行结果:s = hello
方式二:参数的传递 - 通过多个参数的方式格式化信息(print(‘s=’,s))
- 例:
s = 'hello'
print('s = ', s)
运行结果:s = hello
方式三:占位符 - 在字符串中指定占位符
- 例:
print('I love %s' % 'you') # %s 为占位符,该字符串后面紧跟的字符串为占位的内容
运行结果:I love you
也可以将语句返回一个变量,再打印变量与占位符,适用于一个语句在同一个地方用多种占位符
- 例:
r = 'I love %s'
print(r % 'you')
print(r % 'ming')
运行结果:
- 错误案例
s = 's1 = %s, s2 = %s' % 'hello'
print(s)
- 报错内容 - TypeError: not enough arguments for format string
- 错误原因:占位符数量与需要占位变量的数量不匹配
- 解决方案:修改占位符数量或者变量数量
s = 's1 = %s, s2 = %s' % ('hello','world')
print(s)
运行结果:s1 = hello, s2 = world
方式四:f + ‘{变量}’格式化
- 例:
s1 = 'cai niao liu'
s2 = 'da lao ming'
a = f'hello, {s1}, {s2}'
print(a)
运行结果:hello, cai niao liu, da lao ming
str.format() 格式化
- 例:
s = 'i like {}'
r = s.format('python')
print(r)
运行结果:i like python
- 错误案例 1
s = 'i like {1}'
r = s.format('python')
print(r)
- 报错内容 - IndexError: tuple index out of range
- 错误原因:字符溢出 - 本案例中只有一个占位变量,所以括号内的整数只能为 0,若变量个数为 2 个,则括号内的整数为 0 和 1, 以此类推
- 错误修正:
s = 'i like {0}'
r = s.format('python')
print(r)
运行结果:i like python
- 错误案例 2
s = 'i like {a}'
r = s.format('python')
print(r)
- 报错内容 - KeyError: ‘a’
- 错误原因:{ } 中的字符必须为整数或不填
- 错误修正:
s = 'i like {}'
r = s.format('python')
print(r)
运行结果:i like python
- 补充案例:
s = 'i like {0} and {1}' # 若括号内不填写数字,则默认从左至右的数字依次为0, 1, 2, 3 依次递增
r = s.format('python','java') # 默认从左到右为0, 1, 2, 3 依次递增,此处'python'代表0, 'java'代表1
print(r)
2.3.3 字符串的补充
split ( ) - 分割字符串
- 作用:将一个字符串按照指定的方式分割成多个子串,子串会保存在列表当中,子串不包括分割方式(运行结果以列表的方式储存)
- 例:
s = 'i love china'
r = s.split(' ') # 将字符串 "s" 按照给定符号 " "(表示空格) 分割,即分成"i", "love", "china"三个部分
print(r)
运行结果:[‘i’, ‘love’, ‘china’]
join() 链接字符串
- 例:
s = ('abc')
r = '-'.join(s) # "-" 为链接符,即为在字符串 "abc" 中间添上链接符 "-" , 运行结果为 "a-b-c"
print(r)
运行结果:a-b-c
去空格/制表符等 s.strip( ) s.lstrip( ) s.rstrip( )
- s.strip( ):字符串两边的都删除
- s.lstrip( ):只删除字符串左边的
- s.rstrip( ):只删除字符串右边的
字符串的大小写
- s.upper():全部大写
- s.lower():全部小写
- s.isupper():判断是否为大写
- s.islower():判断是否为小写
- 判断的结果均以布尔值 True 和 False 输出