《毫无障碍学Python》邓文渊著 学习笔记
变量与数据类型、表达式、条件语句
变量
score = 80 #Python变量不声明就可使用,Python会根据变量值设定数据类型,该score为int型
fruit = "香蕉" # fruit数据类型为字符型
a = b = c =20 #多变量一起赋值
age = 18 ;num = 99 #一行赋多值
del score #删除变量: del 变量名
一、变量与数据类型
1.变量命名规则
- 由字母、数字、_、中文(Python3.x支持,尽量不用)组成
- 首字母为字母、_、中文
- 区分大小写
- 不可与保留字相同
2.数据类型
- 整型int:不含小数点的数值
- 浮点型float:包含小数点
- 布尔类型bool:True、False
- 字符串类型str:用双引号“”或‘’单引号包含起来的变量,若字符串包含引号本身,可用另一种引号包住字符串 str1 = ‘小明说:“你好!”’,变量值为:小明说:“你好!”
- 逃逸符 \x(\开头 x为特定字符):\o 八进制、\x 十六进制、\n 换行…
3.print、type命令
- print输出制定对象内容 print(对象1,对象2,sep=“分隔符”,end = “终止符”))
分隔符separator(若输出多个对象用于设置指定符号分隔,默认空格符“ ”),中止符(输出完毕后自动添加的字符,默认\n
print(20,30,50,sep = "*",end = " ") #输出结果20*30*50
- print命令支持参数格式化功能,%s代表字符串、%d代表整数、%f代表浮点数
print(对象 % (参数行))
name = "张三"
a = 20
print("%s今年%d岁了!"%(name,a))#也可用字符串format方法格式化{}表示参数位置 print(字符串.format(参数行))
print("{}今年{}岁了!".fomat(name,a))
参数格式化方式可精确控制输出位置:%5d(固定输出5个字符宽度,少于5左边填空格符,大于5全部输出),%5s(同上),%8.2f(固定输出8个字符宽度含小数点,小数输出两位,整数少填空格,小数少填0)
sno = 1234567
print("学号1:%10d,学号2:%5d"%(sno,sno))
score = 87.5
print("语文成绩:%7.3f"%(score))
运行结果
学号1: 1234567,学号2:1234567
语文成绩: 87.500
- type会取得对象数据类型 type()
name = "张三"
print(type(name),type(100.00))
运行结果
<class 'str'> <class 'float'>
4.数据类型的转换
(1)数据类型自动转换
- 整形 + 浮点型——>整型先转浮点型,再相加
- 数值 + 布尔类型——>布尔类型转换为数字(True->1,False->0),再相加
(2)强制类型转换
int() 强转为整形、float() 强转为浮点型 、str() 强转为字符串型
二、表达式
- 表达式 = 操作数 + 运算符
- 单目运算符:只有一个操作数,如:not,-(-100)…
- 双目运算符:具有两个操作数:and、100-23…
1.input命令
input让用户由"标准输入"设备(键盘)输入数据 input语法: 变量 = input([提示字符串])Enter键输入结束
age = input("请输入年龄:")
2.运算符
- 算数运算符 :+、=、*、/、%、//(取商的整数部分)、**(操作数1 的 操作数2 次方)
n1 = 46//5 #取商整
n2 = 2**6 # 2的6次方
运行结果
9 64
- 关系运算符 :== 、!=、 <、 >、 >=、 <= 结果为True或False
-** 逻辑运算符** :not(取反), and(同真为真), or(同假才假) 结果为True或False - 复合赋值运算符 :+=,-=,*=,%=,/=,//=,**=
i1 = i2 = 10
i1//=4
i2**=2
三、条件语句
Python流程序控制命令两大类:
- 条件:条件表达式运算结果为True,执行跳跃
- 循环:条件表达式运算结果为True,执行循环
1.条件
(1)单向条件 (if…)
if(条件表达式): 程序块 (括号可移除)
pw = input("Please input password:")
if(pw=="1234"):#python使用冒号和缩进表示程序块,缩进用一个Tab或四个空格
print("Welcome!")
(2)双向条件 (if…else…)
if(条件表达式):
程序块1
else:
程序块2
pw1 = input("Please input password:")
if(pw1=="12345"):
print("Welcome!")
else:
print("Password Wrong!")
(3)多向条件(if…elif…else…)
score = input("Please input you score:")
if(int(score)>=90):
print("great!")
elif(int(score)>=80):
print("A")
elif(int(score)>=70):
print("B")
elif(int(score)>=60):
print("C")
else:
print("Fail!")
(4)条件嵌套
money = int(input("Please input your sum of consumption:"))
if(money >= 10000): # money大于一万打折
if(money >=100000):
print(str(money*0.8),end="元\n") # money大于十万打八折
elif(money >= 50000):
print(str(money*0.85),end="元\n") # money5~10万打八五折
elif(money >= 30000):
print(str(money*0.90),end="元\n") # money3~5万打九折
elif(money >= 10000):
print(str(money*0.95),end="元\n") # money1~3万打九五折
else:
print(str(money),end="元\n") # money一万以下不打折