みなさん、こんにちは。この質問についてサポートが必要です。
指定されたタイプの入力のみを受け入れることを除いて、Python入力関数と同様に機能するsafe_input(prompt、type)という名前の関数を記述します。
この関数は2つの引数を取ります。
プロンプト:str
タイプ:int、float、str
この関数は、指定されたタイプの正しい入力が入力されるまで、入力のプロンプトを出し続けます。この関数は入力を返します。入力が数値(floatまたはint)として指定された場合、返される値は正しいタイプになります。つまり、関数は変換を実行します。
プロンプトのデフォルトは空の文字列です。タイプのデフォルトは文字列です。
これが私が持っているものです:
safe_input = input(str("Enter a String Type you want to check: "))
test = safe_input("this is a string")
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input("this is a string",int)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input("this is a string",float)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5,int)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5,float)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5.044)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5.044, int)
print ('"{}" is a {}'.format(test,type(test)))
test = safe_input(5.044, float)
print ('"{}" is a {}'.format(test,type(test)))
def safe_input (prompt, type=str):
if (type == int):
while (True):
try:
# check for integer or float
integer_check = int(prompt)
# If integer, numbers will be equal
if (prompt == integer_check):
return integer_check
else:
print("They are not equal!!")
return integer_check
except ValueError:
print ("Your entry, {}, is not of {}."
.format(prompt,type))
prompt = input("Please enter a variable of the type '{}': "
.format(type))
誰かが私がここで間違っていることを知っていますか?私の友人と私はこれに何時間も取り組んできました。
更新:次のようなエラーが発生します:
File "C:\Users\Thomas\Desktop\ei8069_Lab9_Q4.py", line 28, in <module>
test = safe_input("this is a string")
TypeError: 'int' object is not callable
Traceback (most recent call last):
File "C:\Users\Thomas\Desktop\ei8069_Lab9_Q4.py", line 28, in <module>
test = safe_input("this is a string")
TypeError: 'float' object is not callable