Найти - Пользователи
Полная версия: Обьясните цикл While
Начало » Python для новичков » Обьясните цикл While
1
AlexSSpirit
Ребят, я только начинаю осваивать Питон, подскажите пожалуйста

Не понимаю по какому принципу, когда меняешь местами инструкции в циклах, меняются и полученные значения.
Например:
print ('————-')
C=-20
dC=5
while C<=40:
F=1.8*C+32
print (C,F)
C=dC+C
#Без этой С, цикл бесконечно выводит одни и те же значения, но какие функции выполняет эта инструкция, и почему она ставится ниже print (C,F)?
print ('————-')

-20 -4.0
-15 5.0
-10 14.0
-5 23.0
0 32.0
5 41.0
10 50.0
15 59.0
20 68.0
25 77.0
30 86.0
35 95.0
40 104.0

print ('————-')
C=-20
dC=5
while C<=40:
F=1.8*C+32
C=dC+C
print (C,F)

print ('————-')


-15 -4.0
-10 5.0
-5 14.0
0 23.0
5 32.0
10 41.0
15 50.0
20 59.0
25 68.0
30 77.0
35 86.0
40 95.0
45 104.0
Romiss
Смотрите внимательно блок. В первом случае вы сперва находите F, выводите значения, потом делаете новое С. Во втором случае делаете С, перед выводом значений.
AlexSSpirit
F=1.8*C+32
print (C,F)
C=dC+C #Без этой С, цикл бесконечно выводит одни и те же значения, но какие функции выполняет эта инструкция, и почему она ставится ниже print (C,F)?
Romiss
AlexSSpirit
C=dC+C #Без этой С, цикл бесконечно выводит одни и те же значения
Все потому, что значение С в этом случае не меняется и всегда будет равно -20, а блок инструкции while будет выполнятся пока выражение С<=40 истинно. (то есть пока С не станет больше 40 будет бесконечный цикл)
AlexSSpirit
Видимо не правильно обьясняю вещь, которую хочу понять.


Почему при:
F=1.8*C+32
C=dC+C
print (C,F)

Результат заканчивается на 45 104.0
Ведь, в условии написано C<=40



И если хочешь например чтобы цикл рузльтат начинался, со вбитого значения
C=-20

То получается обязательно порядок инструкций должен быть таковой:
F=1.8*C+32
print (C,F)
C=dC+C

?
FishHook
AlexSSpirit
print ('————-')
C=-20
dC=5
while C<=40:
F=1.8*C+32
print (C,F)
C=dC+C #
Где в этом коде отступы?
Предположим, это мой код, а не Ваш, Вы сможете это понять? Я не способен.
tibs
AlexSSpirit
Видимо не правильно обьясняю вещь, которую хочу понять.


Почему при:
F=1.8*C+32
C=dC+C
print (C,F)

Результат заканчивается на 45 104.0
Ведь, в условии написано C<=40

С=40 и он заходит в цикл. Потом ты увеличиваешь на dc и после этого печатаешь C, которое уже стало 45.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB