目录
顺序结构
程序从上到下顺序的执行代码,中间没有任何的判断和跳转,直到程序结束
"------把大象装冰箱------"
print('-----程序开始------')
print('1.打开冰箱')
print('2.放入大象')
print('3.关闭冰箱')
print('----程序结束------')
对象的布尔值:
python中一切皆对象,所有的对象都有一个布尔值,获取对象的布尔值使用内置函数bool()
以下对象的布尔值为Flase
Flase,0,None,空字符串,空列表,空元组,空字典,空集合除这些外,其它对象的布尔值均为True
print(bool(False))
print(bool(0))
print(bool(None))
print(bool('')) # 空字符串
print(bool([])) # 空列表
print(bool(list())) # 空列表
print(bool()) # 空元组
print(bool(tuple())) # 空元组
print(bool({})) # 空字典
print(bool(dict())) # 空字典
print(bool(set())) # 空集合
选择结构
程序根据判断条件的布尔值选择性的执行部分代码
单分支结构
语法结构:
money = 1000
a = int(input('请输入取款金额'))
if a <= 1000:
money -= a
print('取款成功!您现在的余额为:', money)
双分支结构
"录入一个整数,判断这个数是奇数还是偶数"
a = int(input('请输入一个整数'))
if a % 2 == 0: # 这里也可以考虑用布尔值作为判断条件
print(a, '是偶数')
else:
print(a, '为奇数')
多分支结构
"------录入你的成绩,90-100为A,80-89为B,70-79为C,60-69为D,0-59为E,其余为非有效成绩"
a = int(input('请输出您的成绩'))
if 90 <= a <= 100:
print('您的成绩为A')
elif 89 >= a >= 80:
print('您的成绩为B')
elif 70 <= a <= 79:
print('您的成绩为C')
elif 60 <= a <= 69:
print('您的成绩为D')
elif 0 <= a <= 60:
print('您的成绩为E')
elif a < 0 or a > 100:
print('您输入的成绩不在范围内')
嵌套if
"""
----会员大于200打八折,大于100打九折,否则不打折----
---非会员大于200打9.5折,否则不打折-----
"""
a = input('您是否是会员?')
m = int(input('请输入您的消费金额'))
if a == '是':
if m >= 200:
m *= 0.8
print('您打折后的金额为', m)
elif 200 > m >= 100:
m *= 0.9
print('您打折后的金额为', m)
else:
print('您的付款金额为', m)
elif a == '否':
if m >= 200:
m *= 0.95
print("您打折后的金额为", m)
else:
print('您的付款金额为', m)
条件表达式
# ----从键盘录入两个整数,比较这两个整数的大小----
a = int(input('请输入一个整数'))
b = int(input('请输入另外一个整数'))
if a > b:
print(str(a)+'>'+str(b))
elif a == b:
print(str(a)+'='+str(b))
else:
print(str(a)+'<'+str(b))
# ---------使用条件表达式输出----------------
c = int(input('请输入一个整数'))
d = int(input('请输入另外一个整数'))
print(str(c)+'>='+str(d) if c >= d else str(c)+'<'+str(d))
# 条件True的结果 if 条件 else 条件False的结果
pass语句
语句什么都不做,只是一个占位符,用在语法上需要语句的地方
range()函数
用于生成一个整数序列
优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop以及step,只有当用到range对象时,才会去计算序列中的相关元素
判断指定整数是否在range()序列中,可以用in 或者 not in 判断
r = range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(r))
a = range(1, 10) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(a))
b = range(2, 8, 2)
print(list(b)) # [2, 4, 6]
'判断整数是否在序列中存在,采用的是in 或者 not in'
print(10 in r) # False
print(4 not in b) # False
print(9 in a) # True
循环结构
循环的分类:主要有 while循环和for -in循环
选择结构if与循环结构while的区别:if是判断一次,条件为True,执行一次。而while是判断N+1次,条件为True执行N次。
while循环语法结构:
"-----计算[1,100]之间的偶数和以及奇数和-----"
i = 1
s1 = 0
s2 = 0
while i <= 100:
if not bool(i % 2):
s1 += i
i += 1
else:
s2 += i
i += 1
print('1到100之间偶数和为', s1)
print('1到100之间奇数和为', s2)
for-in循环
in表示从(字符串,列表等)中,依次取值,又称遍历
语法结构
循环体内不需要访问自定义变量,可以将自定义变量改为下划线代替
"""从字符串中依次将取出"""
for i in "hello world!":
print(i)
"将整数元素依次从range()函数中取出"
for n in range(0, 10, 2):
print(n)
for _ in range(3):
print('人生苦短,我用python')
"使用for—in循环,计算1-100的偶数和"
s1 = 0
s2 = 0
for i in range(1, 101):
if i % 2:
s1 += i
else:
s2 += i
print('1到100之间的奇数和为', s1)
print('1到100之间的偶数和为', s2)
"""
输出100到999之间的水仙花数
例如:153=3**3+5**3+1**3
"""
for i in range(100, 1000, 1):
if i == (i % 10)**3+((i//10) % 10)**3+(i//100)**3:
print("输出100到999之间的水仙花数为", i)
break语句
用于结束循环结构,通常与分支结构if一起使用,break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环
"""
从键盘录入密码,如果正确就结束,最多录入三次,正确密码为123
"""
# -----for-in循环--------
for i in range(1, 4):
password = input("请输入您的密码")
if password == "123":
print('密码正确')
break
elif i == 3:
print("密码输入次数超限,请稍后再试")
else:
print("密码输入错误", "您还可输入", 3-i, "次")
# -----while循环--------
i = 1
while i <= 3:
password = input("请输入您的密码")
if password == "123":
print('密码正确')
break
elif i == 3:
print("密码输入次数超限,请稍后再试")
else:
print("密码输入错误", "您还可输入", 3 - i, "次")
i += 1
continue语句
用于结束循环结构,并进行下一次循环,通常与分支结构if一起使用。continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
"""
输入1到50之间所有5的倍数
"""
for i in range(1, 51):
if not i % 5:
print(i)
# -----使用continue语句-------
for i in range(1, 51):
if i % 5:
continue
else:
print(i)
else语句
# 三次密码问题
for i in range(1, 4):
password = input('请输入密码')
if password == '123':
print('密码正确')
break
else:
print('密码错误,您还可输入', 3-i, "次")
else:
print('三次密码均错误')
# -----搭配while else使用------
i = 1
while i <= 3:
password = input('请输入密码')
if password == '123':
print('密码输入正确')
break
else:
print('密码错误,您还可输入', 3-i, "次")
i += 1
else:
print('三次密码均错误')
# 运行出来感觉有点怪,再改一种
i = 1
while i <= 3:
password = input('请输入密码')
if password == '123':
print('密码输入正确')
break
elif i < 3:
print('密码错误,您还可输入', 3-i, "次")
i += 1
else:
print('三次密码均错误')
嵌套循环
循环结构中有嵌套了完整的循环结构,其中内层循环作为外层循环的循环体执行
二重循环中的break 和continue
"""
输出一个3*4的矩阵
"""
for i in range(1, 4): # 外层循环控制着行数,内层循环控制着打印个数
for j in range(1, 5):
print(j, end='\t')
print()
"""
输出一个乘法表
"""
"打印9*9乘法表"
for i in range(1, 10):
for j in range(1, i+1):
print(i, "*", j, '=', i*j, end="\t")
print()
for i in range(1, 10):
for j in range(1, 10):
if i >= j:
print(i, "*", j, '=', i * j, end="\t")
print()
# 二重循环中的break和continue用于控制本层循环
'--------break--------'
for i in range(5): # 外层循环5次
for j in range(1, 10):
if j % 2 == 0:
break
print(j)
'--------continue--------'
for i in range(5): # 外层循环5次
for j in range(1, 11):
if j % 2 == 0:
continue
print(j, end='\t')
print()