#python #loops #while-loop #operator-keyword #evaluation
Вопрос:
Я новичок в программировании или программировании, поэтому надеюсь на уважение.
Как я могу создать программу, которая постоянно принимает входные данные от пользователя. Ввод должен быть в этом формате номер оператора, например -3
Нравится
num = 0
while((a := input("Enter operatornumber like -9;")) != "-0"):
if (len(a) >= 2) and (a[0] in "/*- "):
num = eval(f"{num}{a}")
else:
print("Invalid input, try again.")
print(num)
Но как я могу сделать первый ввод пользователя, чтобы использовать только операторы добавления ( ) или вычитания ( -), но в следующем вводе они теперь могут использовать другие операторы.
Нравится
Введите номер оператора, как -9; 9 Введите номер оператора, как -9; -8 Введите номер оператора, как -9; -0 1
И как я могу объединить все входные данные, например, 9-9 равно 1?
Комментарии:
1. Чтобы добавить в ответ @bituniverse,
while
ключевое слово должно быть в нижнем регистре, и вам нужно сделать отступ под ним.2. Ооо, спасибо,но я хочу, чтобы ввод пользователя был в таком формате «-9 «или» 8″. Я хочу, чтобы сначала был оператор, а затем следовал номер. Затем, когда пользователь введет «-0», он вычислит все данные пользователя
Ответ №1:
В инструкции ввода вы закрываете msg «Введите оператор и номер, подобный». Это создает больше проблем после этой строки, где все зеленые части теперь считаются строкой. Кроме того, в операторе while «w» должно быть строчной буквой, python чувствителен к регистру. Попробуйте сделать это:
Number = input("Enter operator and number like '-9' ")
Operator = (" ","-","/")
while Number == (Operator Number):
if Number == "-0":
Total = 0
Total = Number
print(f"the result of {num} is {total} ")
Комментарии:
1. Спасибо, я изменил его, но он все равно не работает. Независимо от того, вводит ли пользователь «a» или что-либо еще, он все равно продолжается, но я хочу, чтобы он остановился, если ввод не в таком формате, «-8».
2. Хорошо, можете ли вы рассказать мне о цели программы, я могу разработать для вас новую и объяснить ее также
3. Это калькулятор, который вычисляет все вводимые пользователями данные в цикле.
4. Хорошо, значит, вы всегда должны выполнять операции в заданном порядке, , -, /, *?? Пользователь должен только вводить данные, верно??
5. Нет, это может быть в любом порядке, кроме первого ввода.
Ответ №2:
Вы можете использовать двойные кавычки для текста и одинарные кавычки для числа, чтобы они не закрывали друг друга. Вы можете получить ввод навсегда, используя следующий код:
while True:
Number = input("Enter operator and number like '-9'")
# Place your next code here.
Ответ №3:
Вот еще один ответ. Мы также должны принимать входные данные от пользователя с оператором, поэтому len(<user_input<) должен быть >=2. Теперь мы возьмем другую переменную h, в которой мы пройдем строку от индекса 1 до конца, что означает, что оператор будет удален, и мы преобразуем его в int. Затем мы поставим условие if, в котором мы проверим user_input[0], равно , -,*,/, а затем в соответствии с этим мы обновим результат. Мы спросим пользователя, хочет ли он больше операций или нет, если y, то продолжайте спрашивать, иначе разорвите цикл while. Вот мой код:
result=0
while True:
a=input("Enter operator and number= ")
if len(a)>=2 and a[0] in [" ","-","*","/"]:
h=int(a[1::])
if a[0]==" ":
result =h
elif a[0]=="-":
result-=h
elif a[0]=="*":
result*=h
elif a[0]=="/":
result/=h
else:
print("choose only from -/*")
else:
print("invalid input")
ch=input("Enter more?")
if ch=='n':
break
print(f"The result is {result}")
Проверьте наличие ошибок отступов, потому что я скопировал и вставил его, чтобы в нем могли быть ошибки отступов
Комментарии:
1. Рад помочь, пожалуйста, поддержите😂
2. О, верно, хе-хе😅