Python学习笔记(九) 分支结构语句之条件判断语句if、elif、else及循环嵌套

【摘要】 史上最为详细的python学习笔记

1、条件判断语句ifelifelse及循环嵌套

Python程序语言指定任何0非空(null)值true0或者 nullfalse

Python编程中if语句用于控制程序的执行,基本形式为:

if 判断条件:

执行语句

else:

执行语句

其中判断条件成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。

else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。

username = ‘admin’
”’
python规定:
如果判断的变量值是” 0 None,默认是False
如果判断的变量有值且不为以上内容,默认是True
”’
if username:
# 等价于if username != ”
print(登录成功!)

else:
print(登录失败)
print(‘—————‘)

”’
猜数字游戏
”’

import random # 导入随机数函数库
rand = (random.randint(1, 10)) # 1-10,包含10,注意:不可强转为str类型,会报错TypeError: ‘str’ object is not callable

# print(‘rand = ‘, rand)
num = int(input(请输入1-10之间的数:))

if num == rand:
print(恭喜中大奖啦,奖励笔记本一个!)
else:
print(很遗憾你猜错啦,与奖品擦肩而过~~~’)

print(‘rand = ‘, rand) # 如果变量在语句的最后面调用,可以不使用占位符或.format()函数

小练习:防沉迷系统

”’
小练习:防沉迷系统
输入年龄和姓名,如果年龄大于18岁,则打印:xxx年龄为xx岁,可以玩3小时游戏,
否则打印:xxxxx岁,只可以玩1.5小时游戏。
”’
print(‘=== 防沉迷系统===’)
name = input(请输入姓名:)
age = int(input(请输入年龄:))

if name and age >= 18:
print(‘{}年龄为{}岁,可以玩3小时游戏。.format(name, age))
elif name and age < 18 and age > 0:
print(‘{}年龄为{}岁,只可以玩1.5小时游戏。.format(name, age))
elif not name or not age:
print(姓名或年龄不能为空,请重新输入。)
else:
print(年龄不可以为负数!)


print(‘——– End ——–‘)

报错:ValueError: invalid literal for int() with base 10: ‘abc’

有时候需要用int()函数转换字符串为整型,但是切记int()只能转化由纯数字组成的字符串,如下例:

非纯数字组成的字符串强转为整型会报错:ValueError: invalid literal for int() with base 10

if 语句的判断条件可以用>(大于)、<(小于)==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。

当判断条件为多个值时,可以使用以下形式:

if 判断条件1:

执行语句1…

elif 判断条件2:

执行语句2…

elif 判断语句3:

执行语句3…

else:

执行语句4…

由于 python 不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比and””or要优先判断

小练习:开心消消乐

”’
小练习:开心消消乐
1、用户输入级别lv1, lv2, lv3
2、判断用户级别,lv1可以解锁100关,lv2可以解锁200关,lv3可以解锁300
3lv2lv3需要充值后解锁关卡,且充值金额是100的倍数
”’
print(‘*’ * 10, 欢迎来到开心消消乐, ‘*’ * 10)

level = input(请输入您当前的级别(lv1, lv2, lv3): ‘)
if level == ‘lv1’:
print(您当前的等级为lv1,可以免费玩100关。)

elif level == ‘lv2’:
print(您当前的等级为lv2,充值后可解锁至200关。)
answer = input(您是否要充值?(y / n): ‘)

if answer == ‘y’ or answer == ‘Y’:
top_up = int(input(请输入充值金额(必须是100的倍数)))

if top_up % 100 == 0 and top_up > 0:
# 如果变量在语句的最后面调用,可以不使用占位符或.format()函数
print(充值成功!充值金额是:%d,购买后可解锁至200关!% top_up)
else:
print(充值金额必须是100的倍数,请重新充值。)

elif answer == ‘n’ or answer == ‘N’:
print(放弃充值,继续当前游戏。)

else:
print(输入无效,请尝试重新输入。)

elif level == ‘lv3’:
print(您当前的等级为lv3,充值后可解锁至300关。)
answer = input(您是否要充值?(y / n): ‘)

if answer == ‘y’ or answer == ‘Y’:
top_up = int(input(请输入充值金额(必须是100的倍数)))

if top_up % 100 == 0 and top_up > 0:
print(充值成功!充值金额是:%d,购买后可解锁至300关!% top_up)
else:
print(充值金额必须是100的倍数,请重新充值。)

elif answer == ‘n’ or answer == ‘N’:
print(放弃充值,继续当前游戏。)

else:
print(输入无效,请尝试重新输入。)

else:
print(输入有误,请尝试重新输入。)
print(** 15, ‘End’, ** 15)

小练习:猜数字,得奖品


import random # 导入随机数函数库
rand = (random.randint(1, 10)) # 不可强转为str类型,会报错TypeError: ‘str’ object is not callable
# print(‘rand = ‘, rand, type(rand))
num = int(input(请输入1-10之间的数:))

if num == rand:
print(恭喜中大奖啦,奖励笔记本一个!)
else:
print(很遗憾你猜错啦,与奖品擦肩而过~~~’)

print(‘rand = ‘, rand) # 如果变量在语句的最后面调用,可以不使用占位符或.format()函数

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享