第11关 杀死那只机生虫

import random

guess = ''

while guess not in ['正面','反面']:
    print('------猜硬币游戏------')
    print('猜一猜硬币是正面还是反面?')
    guess = input('请输入“正面”或“反面”:')
    if(guess=='正面'):
        guess=1
    else:
        guess=0

# 随机抛硬币,0代表正面,1代表反面
toss = random.randint(0,1) 

if toss == guess:
    print('猜对了!你真棒')
else:
    print('没猜对,再给你一次机会。')
    guess = input('再输一次“正面”或“反面”:')
    if toss == guess:
        print('你终于猜对了!')
    else:
        print('大失败!')

第11关 杀死那只机生虫_第1张图片
报错问题是:
重复出现“猜硬币游戏”提示语。
是循环出了问题,在最后加个break.
改善后的代码如下:

while guess not in ['正面','反面']:
    print('------猜硬币游戏------')
    print('猜一猜硬币是正面还是反面?')
    guess = input('请输入“正面”或“反面”:')
    if(guess=='正面'):
        guess=1
    else:
        guess=0
    break

line 6, in
print (6/x)
TypeError: unsupported operand type(s) for /: ‘int’ and ‘str’

# 请你先运行代码一次,然后取消第9,10两行的注释后,再运行一次代码。

num = [1,2,0,3,1.5,'6']
for x in num:
    try:  # 尝试执行下列代码
        print (6/x)
    except ZeroDivisionError:
        print('0是不能做除数的!')
    except TypeError:  # 当报错信息为TypeError,执行下面的语句。
        print('被除数必须是整值或浮点数!')

# 当你运行两次代码后,你就知道:try下面可以包含多个except,针对不同的报错,类似多个 elif。
#》》
6.0
3.0
0是不能做除数的!
2.0
4.0
被除数必须是整值或浮点数!

line 8, in
z = float(x)/float(y)
ZeroDivisionError: float division by zero

NameError:


第11关 杀死那只机生虫_第2张图片
第11关 杀死那只机生虫_第3张图片


2019/06/02
词云编程报错
line 5, in
import cv2
ModuleNotFoundError: No module named ‘cv2’


可以将方式三种的Exception换成BaseException试试,再去搜索一下两个单词之间的关系。
参考:https://docs.python.org/3.1/library/exceptions.html#BaseExceptionBaseException:

在Python中,所有异常必须是从BaseException派生的类的实例 。在带有 提及特定类的except子句的try语句中,该子句还处理从该类派生的任何异常类(但不是从中派生它的异常类)。通过子类化不相关的两个异常类永远不会等效,即使它们具有相同的名称。
内置异常的类层次结构是:

BaseException #在Python中,所有异常必须是从BaseException派生的类的实例 
 +  -  SystemExit 
 +  -  KeyboardInterrupt 
 +  -  GeneratorExit 
 +  -  Exception #在带有 提及特定类的except子句的try语句中,该子句还处理从该类派生的任何异常类(但不是从中派生它的异常类)。
      +  -  StopIteration 
      +  -  ArithmeticError 
      |     +  -  FloatingPointError 
      |     +  -  OverflowError 
      |     +  -  ZeroDivisionError 
      +  -  AssertionError 
      +  -  AttributeError 
      +  -  BufferError 
      +  -  EnvironmentError 
      |     +  -  IOError 
      |     +  -  OSError 
      |          +  -  WindowsError  (Windows )
      |          + - VMSError  (VMS )
      +  -  EOFError 
      +  -  ImportError 
      +  -  LookupError 
      |     +  -  IndexError 
      |     +  -  KeyError 
      +  -  MemoryError 
      +  -  NameError 
      |     +  -  UnboundLocalError 
      +  -  ReferenceError 
      +  -  RuntimeError 
      |     +  -  NotImplementedError 
      +  -  SyntaxError 
      |     +  -  IndentationError 
      |          +  -  TabError 
      +  -  SystemError 
      +  -  TypeError 
      +  -  ValueError 
      |    +  -  UnicodeError 
      |          +  -  UnicodeDecodeError 
      |          +  -  UnicodeEncodeError 
      |          + -  UnicodeTranslateError 
      + -  警告
           + -  DeprecationWarning 
           + -  PendingDeprecationWarning 
           + -  RuntimeWarning 
           + -  SyntaxWarning 
           + -  UserWarning 
           + -  FutureWarning 
           + -  ImportWarning 
           + -  UnicodeWarning 
           + -  BytesWarning

由维恩图知:
第11关 杀死那只机生虫_第4张图片
即BaseException=SystemExit +KeyboardInterrupt +GeneratorExit + Exception
不管Exception有多少种 报错类型,BaseException都有,并且BaseException比Exception多出SystemExit +KeyboardInterrupt +GeneratorExit三种类 包含的错误类型。

因此 Exception能完成的,BaseException都能完成,但是BaseException能完成的,Exception不一定能完成(三个特例是:SystemExit +KeyboardInterrupt +GeneratorExit)

你可能感兴趣的:(python,用法查询笔记)