gpt4 book ai didi

Python 要求用户输入而不换行?

转载 作者:太空宇宙 更新时间:2023-11-03 17:31:12 25 4
gpt4 key购买 nike

我几天前刚刚开始使用Python,一直在研究一个计算器(不是非常基础,但也不是高级)。该问题不会阻止代码运行或其他任何事情,它只是一个视觉问题。控制台中的输出如下所示(括号中的内容是解释正在发生的事情,但实际上并不是输出的一部分):

4 (user prompted for first number, press enter afterwards)
+ (user prompted for an operator, press enter afterwards
5 (user prompted for second number, press enter afterwards)
9.00000 (answer is printed)

Process finished with exit code 0

基本上,当我将其输入控制台时,我希望它看起来像这样:

4+5
9.00000

我不希望它在输入数字或运算符或其他内容后开始换行,当它沿一行打印时,它看起来更像是一个实际的计算器。这可以做到吗?如果可以的话怎么做?顺便说一句,我知道 end="" 可以与 print 一起使用,但不能与 input 一起使用,因为它不接受参数。我也知道整个计算器的事情有点多余,考虑到你可以在 python IDLE 中非常轻松地进行计算,但我认为这对我来说是一个很好的学习方式。如果您需要的话,这是完整的代码:

import math

while True:
try:
firstNumber = float(input())
break
except ValueError:
print("Please enter a number... ", end="")
while True:
operators = ['+', '-', '*', '/', '!', '^']
userOperator = str(input())
if userOperator in operators:
break
else:
print("Enter a valid operator... ", end="")
if userOperator == operators[4]:
answer = math.factorial(firstNumber)
print(answer)
pause = input()
raise SystemExit
while True:
try:
secondNumber = float(input())
break
except ValueError:
print("Please enter a number... ", end="")
if userOperator == operators[0]:
answer = firstNumber + secondNumber
print('%.5f' % round(answer, 5))
elif userOperator == operators[1]:
answer = firstNumber - secondNumber
print('%.5f' % round(answer, 5))
elif userOperator == operators[2]:
answer = firstNumber * secondNumber
print('%.5f' % round(answer, 5))
elif userOperator == operators[3]:
answer = firstNumber / secondNumber
print('%.5f' % round(answer, 5))
elif userOperator == operators[5]:
answer = firstNumber ** secondNumber
print('%.5f' % round(answer, 5))
pause = input()
raise SystemExit

最佳答案

您的问题是您要求 input() 而不指定您想要的内容。因此,如果您看一下第一个: firstNumber = float(input()) 它执行正常,但您按 enter 它会给出一个错误,只有在您正在指定您想要什么。

尝试用这些替换:

...
try
firstNumber = float(input("Please enter a number... "))
...
userOperator = str(input("Enter a valid operator... "))
...
secondNumber = float(input("Please enter a number... "))

这就是你要找的吗?

使用我建议的方法:

Please enter a number...   5
Enter a valid operator... +
Please enter a number... 6
11.00000

使用你的方法:

Please enter a number...   5

Enter a valid operator... +

Please enter a number... 6
11.00000

我假设您指的是额外的换行符。

关于Python 要求用户输入而不换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com