Peteryo01223 发表于 2021-1-28 16:57:40

Python的两个小问题

本帖最后由 Peteryo01223 于 2021-1-28 17:03 编辑

原题:
尝试一个新的函数 int_input(),当用户输入整数的时候正常返回,否则提示出错并要求重新输入。

正确答案:如下 code。小甲鱼用的是 prompt,我抄写时用的是 a,其他都一样。

问题:我提两个小问题,如注释 #,请高手解答。谢谢~
def int_input(a=''):
# 问题1:括号里的 a='' 有什么意义?空置不行么?

    while True:
    # 问题2:这里为何要开始循环?没有这个 while,难道 code 就不能运行吗?反而,因为有了 while 循环,后面还得专门写个 break,这不多此一举么?

      try:
            int(input(a))
            break
      except ValueError:
            print('出错了,你输入的不是个整数。')

int_input('请输入一个整数:')

Twilight6 发表于 2021-1-28 17:02:47


# 问题1:括号里的 a='' 有什么意义?空置不行么?

这是定义函数设置的默认值,如果设置了默认值,那么该函数被调用时没有特殊需要就可以直接进行调用,如:int_input( )

而如果没有设置默认值,那么 int_input 函数调用时必须传入参数,如:int_input('FishC')

# 问题2:这里为何要开始循环?不循环,程序就不能运行吗?有了循环,后面还得写个 break,多余么?

不多于,因为如果你 input 输入的值是错误的,这个循环就会让你重新输入

因为 break 这行代码被 try 报错捕获了导致没有执行 break 执行 except 执行下次循环,直到你输入的值是正常的,即不报错,执行 break 退出循环

Peteryo01223 发表于 2021-1-28 17:04:53

Twilight6 发表于 2021-1-28 17:02
这是定义函数设置的默认值,如果设置了默认值,那么该函数被调用时没有特殊需要就可以直接进行调用, ...

多谢!
页: [1]
查看完整版本: Python的两个小问题