Как запустить определенную программу Python в то время как цикл без непрерывного цикла - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь заставить программу запросить стоимость, а затем запросить маржу. Я хочу быть в состоянии повторить это, используя различное количество маржи. Я пробовал разные способы, но все они вызывают непрерывный цикл.

Несколько лет назад у меня была эта программа, и она работала, и я помню, что она была довольно простой, но я не могу получить ее сейчас.

Я не знаюне помню все, что я пробовал. Я пытался опубликовать какое-то время, и если заявления, которые я попробовал здесь, но это не позволило бы мне, так как я не знал, как форматировать, так что будет публиковать. Пробовал разные операторы while, если, иначе, операторы продолжаются, ломаются.

cost = input('Enter cost: ')
cost = float(cost)
margin = input('Enter margin: ')
margin= float(margin)
while margin != 0:
    print('List equals', cost/margin)

Ожидается, что он запросит стоимость и маржу. Затем разделите стоимость на маржу, дайте ответ и повторяйте, пока я не введу стоп, или маржа не будет равна определенной сумме.

Ответы [ 2 ]

4 голосов
/ 24 октября 2019

Ваш скрипт в его текущей форме читает ввод и устанавливает его как число с плавающей запятой для cost и margin, после чего вы вводите свой цикл, если margin не 0. Таким образом, предполагая, что вы установили ненулевое значение для margin, вы входите в цикл. но как только вы войдете в цикл, вы никогда не измените значение margin, поэтому условие цикла навсегда останется True.

Вместо этого вы можете просто запустить бесконечный цикл и продолжать считывать поле для каждой итерациипетля. Если значение поля не равно 0, оно напечатает результат. Если значение поля равно 0, цикл прервется.

cost = float(input('Enter cost: '))
while True:
    margin = float(input('Enter margin: '))
    if margin:
        print('List equals', cost/margin)
    else:
        break

ВЫХОД

Enter cost: 10
Enter margin: 2
List equals 5.0
Enter margin: 3
List equals 3.3333333333333335
Enter margin: 0

Process finished with exit code 0
1 голос
/ 24 октября 2019

Вы можете сделать это с помощью приведенного ниже фрагмента кода

while True :
    cost = input('Enter cost: ')
    cost = float(cost)
    margin = input('Enter margin: ')
    margin= float(margin)
    print(margin)
    if margin != 0 :   # or what ever value you want it to be
        print('List equals', cost/margin)
        break
    else :
        continue

Результат:

Enter cost: 0
Enter margin: 10
10.0
Enter cost: 20
Enter margin: 20
20.0
List equals 1.0
-----------------
...