Python 该函数接受两个参数:Prompt:str和返回类型:int、float、str
大家好,我需要一些关于这个问题的帮助 编写一个名为safe_input(prompt,type)的函数 它的工作原理与Python输入函数类似, 但它只接受指定类型的输入 该函数有两个参数: 提示:str 类型:int、float、str 该函数将一直提示输入,直到指定类型的输入正确为止 进入。该函数返回输入。如果输入被指定为数字(float或int),则返回的值将是正确的类型;也就是说,该函数将执行转换 提示的默认值是空字符串。 该类型的默认值为字符串 以下是我所拥有的: 有人知道我做错了什么吗?我和我的朋友为此工作了几个小时 更新:我收到如下错误:Python 该函数接受两个参数:Prompt:str和返回类型:int、float、str,python,prompt,Python,Prompt,大家好,我需要一些关于这个问题的帮助 编写一个名为safe_input(prompt,type)的函数 它的工作原理与Python输入函数类似, 但它只接受指定类型的输入 该函数有两个参数: 提示:str 类型:int、float、str 该函数将一直提示输入,直到指定类型的输入正确为止 进入。该函数返回输入。如果输入被指定为数字(float或int),则返回的值将是正确的类型;也就是说,该函数将执行转换 提示的默认值是空字符串。 该类型的默认值为字符串 以下是我所拥有的: 有人知道我做错了什么
文件“C:\Users\Thomas\Desktop\ei8069\u Lab9\u Q4.py”,第28行,在
测试=安全输入(“这是一个字符串”)
TypeError:“int”对象不可调用
回溯(最近一次呼叫最后一次):
文件“C:\Users\Thomas\Desktop\ei8069_Lab9_Q4.py”,第28行,在
测试=安全输入(“这是一个字符串”)
TypeError:“float”对象不可调用
为什么有这一行:
safe_input = input(str("Enter a String Type you want to check: "))
在节目开始时。你应该有函数的定义,但是你在最后有它
解决方案:删除该伪行,并将函数定义移到程序顶部
解释:当您运行该行时,它会向用户请求一些内容,并且(比如42
将被分配到safe\u input
。然后您尝试将其用作函数,但嘿,42
是一个整数,无法调用。就我的两美分
首先,仔细阅读你的作业,你的方法并不是他们想要的
您使用了很多不必要的条件。您的函数可以更简单,如下所示:
def safe_input(prompt, type_=str):
if(type_ not in (str, int, float)):
raise ValueError("Expected str, int or float.")
while True:
test = input(prompt)
try:
ret = type_(test)
except ValueError:
print("Invalid type, enter again.")
else:
break
return ret
尽量不要在变量名中使用诸如type之类的内置函数。它们会覆盖内置函数,并且会在以后引起很多麻烦。您的代码当前有什么问题?(它显示了什么不正确的行为?)在您的第一行中,您将safe_input的值分配给用户输入的值,然后像调用函数一样调用它!首先定义safe_input函数,而input()调用应该在函数内部。我明白了,所以在大多数情况下,只需确定用户输入的位置,然后首先定义safe_input函数,谢谢大家!!
safe_input = input(str("Enter a String Type you want to check: "))
def safe_input(prompt, type_=str):
if(type_ not in (str, int, float)):
raise ValueError("Expected str, int or float.")
while True:
test = input(prompt)
try:
ret = type_(test)
except ValueError:
print("Invalid type, enter again.")
else:
break
return ret