鱼C论坛

 找回密码
 立即注册
查看: 1458|回复: 2

[已解决]Python的两个小问题

[复制链接]
发表于 2021-1-28 16:57:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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('请输入一个整数:')
最佳答案
2021-1-28 17:02:47

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


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

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

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


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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-28 17:02:47 | 显示全部楼层    本楼为最佳答案   

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


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

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

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


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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

多谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 11:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表