我在学习python的时候正在制作一个计算器程序,我在高中时学过Java,还不知道任何高级python函数,所以尽量不要使用太高级的东西,但让我们来解决我的问题。对不起,如果这个问题没有组织好,我从来没有在这里发布过。整个程序将位于底部。
我卡住的地方是,我让用户输入他们想要使用的操作符,然后它要求数字1和数字2。如果用户在任何时候输入“退出”或“停止”,程序就会退出,对于操作员部分,它会退出并显示退出消息。但是当键入Num1或Num2退出时,我没有得到我想要的响应,我得到了很多错误,但主要是像num是int不能有字符串值,num是str不能有int,或者它接受退出/停止,但然后继续Num2,然后抛出一个错误后,任何东西都输入到Num2
operator = (input("Would you like to add(+), subtract(-), multiply(*), divide(/) or use exponents(**)? "))
if operator.lower() == 'exit' or operator.lower() == 'stop':
break #this part works fine and as intended
num1 = eval(input("Enter number 1: "))
if num1 == str() and (num1.lower() == 'exit' or num1.lower() == 'stop'):
break #this part however doesnt work because i have int and str in the same variable
num2 = eval(input("Enter number 2: "))
if num2 == str() and (num2.lower() == 'exit' or num2.lower() == 'stop'):
break
我尝试过使用float、str或int来表示num,在if语句的位置上乱搞,我希望能够接受'exit'或'stop'作为num的值,然后退出while循环,该循环结束了程序,但我尝试了一个小时左右,无法解决这个问题。所以我的问题是,我需要num1和num2的值能够接受str和int,并在它们等于“stop”或“exit”时结束程序
operator = ''
num1 = ''
num2 = ''
while True:
operator = (input("Would you like to add(+), subtract(-), multiply(*), divide(/) or use exponents(**)? "))
if operator.lower() == 'exit' or operator.lower() == 'stop':
break
num1 = eval(input("Enter number 1: "))
if num1 == str() and (num1.lower() == 'exit' or num1.lower() == 'stop'):
break
num2 = eval(input("Enter number 2: "))
if num2 == str() and (num2.lower() == 'exit' or num2.lower() == 'stop'):
break
oldNum2 = num2
if operator == 'add' or operator == '+':
answer = num1 + num2
print(num1, '+', num2, '=', answer)
elif operator == 'subtract' or operator == '-':
answer = num1 - num2
print(num1, '-', num2, '=', answer)
elif operator == 'multiply' or operator == '*':
answer = num1 * num2
print(num1, '*', num2, '=', answer)
elif operator == 'divide' or operator == '/':
answer = num1 / num2
print(num1, '/', num2, '=', answer)
elif operator == 'exponents' or operator == '**':
answer = num1 ** num2
print(num1, '**', num2, '=', answer)
else:
print('Please type a valid operator...')
print('Program has exited due to user input.')
基本上只需将num1
和num2
视为字符串,直到您知道它们不是stop
或exit
,然后解析其中的数字:
def isExitCommand(userInput):
return userInput.lower() == 'exit' or userInput.lower() == 'stop'
while True:
operator = str(input("Would you like to add(+), subtract(-), multiply(*), divide(/) or use exponents(**)? "))
if isExitCommand(operator):
break #this part works fine and as intended
num1 = input("Enter number 1: ")
if isExitCommand(num1):
break
else:
num1 = float(num1)
num2 = input("Enter number 2: ")
if isExitCommand(num2):
break
else:
num2 = float(num2)
print("You entered {} {} {}".format(num1, operator, num2))
也没有必要检查输入是否是一个字符串,但是如果你想检查,那么Num1==str()
是不正确的。你想为Python 3. x做is实例(s, str)
我试图用while循环计算多个数字的和。当输入负数时,应打印数字之和。当我运行代码时,它所做的就是打印最后输入的正数。以下是当前的非工作代码:
问题内容: 下面的代码询问用户他/她想要多少个赛车手。 如果在代码中输入数字,则代码会跳出循环,并且程序的其余部分可以正常运行;但是,当我输入诸如“ awredsf”之类的内容时,它应该捕获该异常,并且确实如此。它没有连续提示用户,而是连续循环,这对我来说没有意义。 连续循环时,程序打印如下: 多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车手应该参加比赛?多少赛车
问题内容: 在执行do-while循环时,让JButton重复更新(与计时器一起使用)时遇到了一些麻烦。我正在开发一个简单的游戏,在10 * 10的图块对象网格上玩,该对象对应于具有100个按钮的JButton arrayList。 程序的此部分处理简单的寻路(即,如果我单击角色,然后单击一个空的图块,则角色将在到达目标的途中在每个图块中移动)。每个步骤之间都有一定的延迟,因此用户可以看到角色的进
我正在编写一个基于文本的冒险游戏,我遇到了一个问题。我正在将它从终端移植到JFrame GUI,我需要它在继续之前等待用户输入。我设置了一个系统,其中有一个名为按钮的布尔变量,它开始时为false。当按下提交文本按钮时,它会将其更改为true。有一个while循环,它会等待按钮变为true,然后才允许程序继续,基本上是暂停程序直到用户提交输入。问题是,只有当我在while循环中写入system.o
对堆栈溢出进行快速搜索会发现数字65535与一个16位无符号int相关联,但java使用的是32位int。将类型更改为double有效,就像简单地循环100,000次并在没有代码逻辑的情况下打印一样。我知道100,000^2高于最大int限制,但在我的代码中这个值从来没有存储为int。这是怎么回事?
这是我的代码: 我的问题是如何检查分数是否在范围内,如果输入了错误的输入,如何使循环重复。当我试图运行程序并输入一个超过范围的输入时,它会转到下一个评估数字,而不是再次尝试,直到它是真的。