一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。
声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。
第十关:(条件分支)章节回顾
练习:小红帽武器选择:
def choose_equipment(HP, AT):
if AT > 1000:
weapon = '苹果炸弹'
if AT <= 1000:
weapon = '万能魔杖'
# 补充选择披风的判断
if HP > 800:
cloak = '外婆的红斗篷'
if HP <= 800:
cloak = '高级巫师袍'
print('今天小红帽选择的装备是' + weapon + '和' + cloak)
choose_equipment(789, 1435)
答案是用的是if…else,而我用的全部是if,这个也可以,因为elif和else是可选项。
但是答案更为规范,由if和else构成一个模块
def choose_equipment(HP, AT):
if AT > 1000:
weapon = '苹果炸弹'
else:
weapon = '万能魔杖'
# 补充选择披风的判断
if HP > 800:
cloak = '外婆的红斗篷'
else:
cloak = '高级巫师袍'
print('今天小红帽选择的装备是' + weapon + '和' + cloak)
HP = int(input('请输入HP值:'))
AT = int(input('请输入AT值:'))
choose_equipment(HP, AT)
修改一下,这样可以随意搭配相关值
在编写程序的时候,一开始是input函数没有用括号,后来倒数第二行中少了半个括号
但是奇怪的时候报错说:最后一行有坏的(不正确)的输入。
练习:有没有优惠
discount(time, is_adventurer):
# 按要求补全代码
if time >= 9 and time <= 15:
if is_adventurer == True:
print('冒险者八折')
else:
print('优惠九折')
else:
print('没有优惠')
is_adventurer = input('请输入游客类型:')
discount(12, is_adventurer)
想改成是可以输入变量值的形式,但是到处第二行不太好弄,这里有布尔表达式和赋值在里面,和定量的变量赋值不太一样了
缩进/冒号和赋值
enemy = '镜妖'
if enemy == '银狼' or enemy == '黑魔法师':
print('使用火球术进行攻击')
elif enemy == '镜妖':
print('使用荆棘术进行攻击')
else:
print('使用苹果炸弹进行攻击')
原始的:
enemy = '镜妖'
if enemy = '银狼' or enemy = '黑魔法师'
#没有缩进,相等用==,最后有英文冒号
print('使用火球术进行攻击')
# 需要缩进
else enemy = '镜妖'
# 多分支选择,中间的用elif,后面用英文冒号
print('使用荆棘术进行攻击')
#需要缩进
else
#多分支选择,最后一个用else,后面要有英文冒号
print('使用苹果炸弹进行攻击')
#需要缩进
例子:运算结果是?
def func(x, y):
if x:
if y > 10:
print('panda')
else:
print('bear')
else:
print('monkey')
func(0, 35)
考察 if 嵌套,因为 x=0,布尔运算的值为 False,所以直接执行外层的 else 语句。
word_1 = 'panda'
word_2 = 'bear'
answer = 'a' in word_1 and 'e' in word_2
print(answer)
使用in给变量赋值
小红帽需要根据 HP 值选择披风和靴子:如果 HP > 800,就选择披风 A,否则选择披风 B;在小红帽选择了披风 A 的前提下,若 HP < 1000,就选择靴子 A,否则选择靴子 B。
例子:怎样写代码更合适呢?
只有在选择披风 A 的前提下,才会进行靴子的选择,这说明前一个选择的结果会对后面的选择造成影响。所以我们要将 HP > 800 作为嵌套条件中的外层条件,将 HP < 1000 作为内层条件,完成装备选择。
if HP > 800:
print('选择披风 A')
if HP < 1000:
print('选择靴子 A')
else:
print('选择靴子 B')
else:
print('选择披风 B')
练习:小红帽打怪
在编程之前先想好结构,条件等
菱形是决策框,一个菱形就是一层嵌套
ending_normal = '小红帽没有打怪,采采蘑菇就回了家'
ending_wolf = '小红帽使用技能“荆棘术”打败了灰狼'
ending_dragon_1 = '小红帽使用技能“火球术”打败了黑龙'
ending_dragon_2 = '小红帽使用技能“隐形术”躲过了黑龙,安全回到家中'
answer_1 = input('小红帽探险时遇到敌人了吗?回答有/没有:')
if answer_1 == '有': #第一层
answer_2 = input('小红帽遇见的敌人是谁?回答灰狼/黑龙')
if answer_2 == '灰狼': #第二层
print(ending_wolf)
else:
answer_3 = input('小红帽带上万能魔杖了吗?回答带了/没带')
if answer_3 == '带了': # 第三层
print(ending_dragon_1)
else:
print(ending_dragon_2)
else:
print(ending_normal)
网友评论