1、字符串和数字不能一起拼接
2、思路不清晰时,导致的错误。可以将相应步骤的结果print输出出来看得到的是什么,然后再将出现问题的代码注释掉,分析进行下一步操作
lst = [{'title':'霸王别姬','actor':['张国荣','巩俐']},
{'title':'扬名立万','actor':['邓家佳','尹正']},
{'title':'误杀','actor':['肖央','谭卓']}]
name = input('请输入演员名字:')
for movie in lst:
lst_actor = movie['actor']
if name in lst_actor:
print(name,'出演了',movie['title'])
输出结果:
请输入演员名字:张国荣
张国荣 出演了 霸王别姬
3、python的异常处理机制
a = int(input('请输入一个整数:'))
b = int(input('请输入另一个整数:'))
result = a/b
print("结果为:",result)
#当b输入0时,会报错 ZeroDivisionError: division by zero
#当输入非数字时,报错 ValueError: invalid literal for int() with base 10: 'a'
3.1 try-多个except
try:
a = int(input('请输入一个整数:'))
b = int(input('请输入另一个整数:'))
result = a / b
print("结果为:", result)
except ZeroDivisionError:
print("对不起,除数不允许为0")
except ValueError:
print("只能输入数字串")
except BaseException as e:
print(e)
print("程序结束!")
输出结果1:
请输入一个整数:a
只能输入数字串
程序结束!
输出结果2:
请输入一个整数:5
请输入另一个整数:0
对不起,除数不允许为0
程序结束!
输出结果3:
请输入一个整数:6
请输入另一个整数:5
结果为: 1.2
程序结束!
3.2 try-except-else
如果try块没有抛出异常,则执行else块;如果try中抛出异常,则执行except块
try:
a = int(input('请输入一个整数:'))
b = int(input('请输入另一个整数:'))
result = a / b
except BaseException as e:
print("出错了",e)
else:
print("结果为:", result)
输出结果1:
请输入一个整数:4
请输入另一个整数:5
结果为: 0.8
输出结果2:
请输入一个整数:l
出错了 invalid literal for int() with base 10: ‘l’
3.3 try-except-else-finally
finally块无论是否异常都会被执行,一般用来释放try块中存放的资源
try:
a = int(input('请输入一个整数:'))
b = int(input('请输入另一个整数:'))
result = a / b
except BaseException as e:
print("出错了", e)
else:
print("结果为:", result)
finally:
print("谢谢您的使用!")
print("程序结束!")
输出结果1:
请输入一个整数:4
请输入另一个整数:5
结果为: 0.8
谢谢您的使用!
程序结束!
输出结果2:
请输入一个整数:6
请输入另一个整数:0
出错了 division by zero
谢谢您的使用!
程序结束!
4、当程序执行到断点处时,是会暂停执行的