一、浮点类型存储不精确性
使用浮点数进行计算时,可能会出现小数位数不确定的情况
例如:
print(1.1 + 2.2)
输出:
3.3000000000000003
解决方案:导入模块 decimal
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
输出:
3.3
二、bool 类型会自动转换成 0 或 1
0 为 False,1 为 True。
例如:
print(True + 1.1)
print(False + 1.1)
三、数据类型转换
- str、int、float 之间可以相互转换;
- str 转 int 或 float 时,内容必须是数字;
- str 转 int 时,内容必须是整数;
str(num)、int(msg)、float(msg)
四、字符转义
1.反斜杠转义,例如:
print('Mom said:\"Good Good Study, Day Day Up\"')
输出:
Mom said:"Good Good Study, Day Day Up"
2.一个制表符占 4 个字节,例如:
print('hellooo\tworld')
print('helloooo\tworld')
输出:
hellooo world
helloooo world
肉眼可观测出,第一行的间隔是小于第二行的,这是因为:
1.一个制表符占四个字节,第一行 hell 算一个制表符的间隔,后面还有 ooo,
那它后面的制表符就只占 1 个字符位置;
2.而第二行 hell 占一个制表符,后面的 oooo 正好也占一个制表符,
那么他后面的制表符就占4个字符位置;
3.双斜杠要用两个转义字符压制:
print('http:\\\\www.baidu.com')
输出:
http:\\www.baidu.com
4.原字符,可使转义失败
print('hello\nworld')
print(r'hello\nworld')
print(R'hello\nworld\\')
输出:
hello
world
hello\nworld
hello\nworld\\
五、对象的布尔值
- Python 一切皆对象,所有对象都有一个布尔值;
- 获取对象的布尔值,使用内置函数:bool();
- 0、None以及所有的空对象,都是 False;
# 列表:[]、list()
# 元组:()、tuple()
# 字典:{}、dict()
# 集合:set()
# 都是 False
六、分支结构、条件表达式、pass 占位符
score = int(input('分数:'))
if score == 100:
pass
elif score >= 90:
print('优')
elif score >= 80:
print('良')
elif score >= 60:
print('中')
else:
if score >= 50:
print('差一哆嗦就能及格,加油!')
else:
print('上课都睡觉了?')
条件表达式,类似于 Java 的三元运算符(n1>n2?0:1)
print("开挂了吗?!" if score == 100 else "不过如此")
七、将局部变量提升为全局变量
global
def fun():
global b
b = 100
fun()
print(b)
|