1、变量
变量:关联一个对象的标识符
学习目标:学会画变量的内存图
命名规则:字母数字下划线,所有单词小写,单词之间下划线隔开
赋值:创建一个变量或改变一个变量关联的数据。
语法:变量名=数据,变量1=变量2=数据
变量1,变量2=数据1,数据2(创建多个变量)
重点1:Python变量在内存中的存储方式
参考自:Python中赋值,深拷贝和浅拷贝_二次赋值是浅拷贝嘛_chde2Wang的博客-CSDN博客
2、数据类型
①字符串:存储文本,利用双引号修饰
②整型:存储整数,不需要引号
③浮点型:存储小数,不需要引号
注意1:字符串不能和数值类型直接运算
注意2:input函数的结果一定是字符型
注意3: 类型转换时在:获取数据时,输出数据时
# age = input("你今年年龄:") # print("明年年龄为:"+ age+1) 报错 # print("明年年龄为:"+ str(int(age) + 1)) # 优化为 age = int(input("你今年年龄:")) age = age+1 print("明年年龄为:"+ str(age))
注意4:只有在数值类型之间数据类型转换 时,才会进行截断数据
re5 = float(8) re6 = int(8.1) re7 = int(-7.6) re8 = int(-7.1) print(re5,re6,re7,re8) # 8.0 8 -7 -7
注意5:字符串转换为数值类型时,必须为数值类型的表现形式
# re9 = int("8.9") # 报错,表达形式需要像整数型 # re10 = float("8点5") # 报错,表达形式需要像小数型
3、算数运算符
算数运算符有:
+ - * ** 幂运算 / 小数商 // 整数商 % 余数
除法举例:
# 除法
total_second = int(input("请输入总秒数:"))
min = total_second // 60
second = total_second % 60
print("总秒数"+str(total_second)+"相当于"+str(min)+"分钟"+str(second)+"秒")
4、增强运算符
增强运算符 在算数运算符基础上,增加对自身赋值的功能 += -= *= **= 幂运算 /= 小数商 //= 整数商 %= 余数
5、优先级
优先级: () ** * / % // + -
6、上述知识练习
练习1:在终端中输入一个疫情确诊人数再录入一个治愈人数,打印治愈比例 格式:治愈比例为xx% 效果: 请输入确诊人数:500 请输入治愈人数:495 治愈比例为99.0%
quezhen = int(input("请输入确诊人数:"))
zhiyu= int(input("请输入治愈人数:"))
# bili = zhiyu / quezhen
# bili *= 100
# 优化为
bili = zhiyu / quezhen * 100
print("治愈比例为:"+str(bili)+"%")
# 注意:print没有固定格式,也可以直接输出
练习2:匀变速直线运动的速度与位移公式: 位移 = 初速度 × 时间 + 加速度 * 时间的平方 / 2 加速度 = (位移 - 初速度*时间)*2 / 时间的平方 已知(在终端中录入):位移、时间、初速度 计算:加速度 效果: 请输入距离:100 请输入初速度:6 请输入时间:10 加速度是:0.8
distance = int(input("请输入距离:"))
sudu = int(input("请输入初速度:"))
time = int(input("请输入时间:"))
jiasudu = (distance - sudu*time)*2/time**2
print("加速度是:"+str(jiasudu))
练习3:在终端中输入一个四位整数,计算每位相加和。 例如:录入1234,打印1+2+3+4结果 效果: 请输入四位整数:1234 结果是:10
num = int(input("请输入四位整数:"))
qian = num // 1000
bai = num // 100 % 10
shi = num // 10 % 10
ge = num % 10
result = ge + shi + bai + qian
print(result)
# 优化,画内存图,哪个简单就是哪个
result = 0
result += num % 10
result += num // 10 % 10
result += num // 100 % 10
result += num // 1000
print(result)
7、布尔运算,比较运算,逻辑运算
整数类型 int:无数个取值 布尔类型 bool True(非0) False(0)两个取值 命题:带有判断性质的陈述句 比较运算符 等于== 不等于!= >= <= > < 逻辑运算符 判断两个布尔(条件)之间关系 并且:and,同时满足,具有截断功能,如果前面不满足,后面不判断 或者,or,满足一个,具有截断功能,如果前面满足,后面不判断,提升CPU运行时间 尽量将耗时的判断,放在后面 取反not:not 条件 类型转换 bool(0),false bool(0.0),false bool(None),bool(""),false 有,无
布尔练习1:
# 性别判断
print(input("请输入性别:") == "男")
# 成年判断
print(int(input("请输入年龄:")) >= 18)
# 星期判断,可以写成数学表达形式
print(1 <= int(input("请输入星期:")) <= 7)
# 整数666 是 字符串666,False
print(666 == "666")
print(666 > "666") # 报错,数字和字符不能比较,只有等于和不等于
# 27除以10的余数为2,False
print(27 % 10 == 2)
# 身高大于170
# print(float(input("请输入你的身高:")) > 170)
# 输入的是正数
value = int(input("请输入数:")) >= 0
if value == True:
print("输入的是正数")
# 输入的是月份
value = 1 <= int(input("请输入数:")) <= 12
if value == True:
print("输入的是月份")
# 输入的不是偶数
value = int(input("请输入数:")) % 2 == 0
if value == False:
print("输入的不是偶数")
逻辑练习1:
print(int(input("请输入存款:")) >= 10000000 and int(input("请输入房产数量:")) > 0)
print(int(input("请输入存款:")) >= 10000000 or int(input("请输入房产数量:")) > 0)
#
print(not True)
# 年龄大于25 并且身高小于170
print(int(input("请输入年龄:")) > 25 and int(input("请输入身高:")) < 170)
# 职位是高管 或者 年薪大于500000
print(input("请输入职位:") == "高管" or int(input("请输入年薪:")) >= 500000)
8、字面值:进制及科学计数法
1 整数
# 十进制OCT:逢十进一,写法是0~9
number01 = 10
# 0b二进制BIN:逢二进一,写法是0~1
number02 = 0b10
# 0o八进制OCT:逢八进一,写法是0~7
number03 = 0o10
# 0x十六进制HEX:逢十六进一,写法是0~9,A-10,B-11,C-12,D-13,E-14,F-15
number04 = 0x10
2 浮点型
# 小数
number05 = 1.2
# 科学计数法 小数变整数:12乘以10的-1次
# number06 = 12 * e * -1 # 错误
number07 = 12e-1
print(number05 == number07)
print(0.00005)