我试图学习用Python编写代码,并试图制作一个计算器。为此,我使用输入来选择哪种计算类型,然后输入要计算的数字。
print ("1. add ; 2. subtract ; 3. multiply ; 4. divide " )
print ("wat is your choise")
choise = input()
if choise == 1 :
num_1_1 = input()
num_2_1 = input()
anwsr_add = (num_1_1 + num_2_1)
print (anwsr_add)
并重复其余选项。
这将返回anwsr_add
,因为未定义,因此无法打印。这使我相信第二个输入无效,没有给出等于anwsr_add
的值。
是否在if流中为这些输入函数添加了额外的代码,或者我是否完全掌握这种方法?
答案 0 :(得分:1)
这取决于您所使用的python版本。
如果您使用的是python 3,则input()返回的类型为'str',这会导致您的错误。要测试此理论,请尝试使用print(type(choice))看看它返回什么类型。如果返回str,则是您的罪魁祸首。如果没有,请与我们联系,以便我们继续进行调试。我在下面的python 3中发布了解决您的问题的方法,以防万一我无法答复。如果您想自己编写所有内容,请随时忽略它。
choice = int(input('Enter 1 to add, 2 to subtract, 3 to multiply, 4 to divide\n'))
if 1 <= choice <= 4:
num1 = int(input('What is the first number? '))
num2 = int(input('What is the second number? '))
if choice == 1:
answer = num1 + num2
elif choice == 2:
answer = num1 - num2
elif choice == 3:
answer = num1 * num2
elif choice == 4:
# In python 3, the answer here would be a float.
# In python2, it would be a truncated integer.
answer = num1 / num2
else:
print('This is not a valid operation, goodbye')
print('Your answer is: ', answer)
答案 1 :(得分:0)
我发现的主要问题是您正在将char数据类型与int数据类型进行比较。当您要求用户输入时,默认情况下,它将存储为字符串。字符串不能与整数进行比较,这就是您要使用if
块进行的操作。如果将输入包装在int()
调用中,它将把char转换为int数据类型,然后可以与== 1
语句进行正确比较。此外,在您的if
语句中,您两次调用input()
,它还会为您提供一个字符串。这意味着,如果您输入1
和1
,您将得到11
(如a + b = ab
)。要解决此问题,还可以用input()
调用包装这些int()
语句。我在以下代码中解决了这些问题:
choice = int(input())
if choice == 1:
num_1_1 = int(input())
num_2_1 = int(input())
anwsr_add = (num_1_1 + num_2_1)
print(anwsr_add)
答案 2 :(得分:-1)
嘿,达莱克,我已经复制了您的代码并获得了以下结果:
1. add ; 2. subtract ; 3. multiply ; 4. divide
What's your choise?
1
Traceback (most recent call last):
File "C:\Users\timur\AppData\Local\Programs\Python\Python36-32\Game.py", line 10, in <module>
print (anwsr_add)
NameError: name 'anwsr_add' is not defined
发生NameError是因为程序在执行anwsr_add
下面的代码时尝试调用if choise == ...
您可以使用此代码。有用。您的代码无法正常工作的原因是您没有在anwr_add
方法中调用if choise == ...
:
choise = input("1. add ; 2. subtract ; 3. multiply ; 4. divide. What's your choise?")
if str(choise) == '1':
print('First_num:')
num_1_1 = input()
print('Second_num:')
num_2_1 = input()
anwsr_add = (int(num_1_1) + int(num_2_1))
print (anwsr_add)