Как оценить ввод пользователя в цикле s?

#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. О, верно, хе-хе😅