логическая строка не учитывается в операторе while / if в python [3.8] - PullRequest
0 голосов
/ 04 марта 2020

Я начинающий программист и выбрал Python [3.8] для изучения. Я даже не знаю, что спросить или как искать на этом сайте. Моя программа насчитывает от 30 до 40 и печатает «Go» для кратных 3 и строк 3 и остатков 3. Она считает Go. Выход должен быть 10, но это 3. Это не считая строк. Нет сообщений об ошибках.

`enter code here`
s = '3'
x = 40
y = 30
num = 0
while y < x :
    y=y+1
    if y % 3 == 0 or y % 10 == 3 or s in 'y' :
        print('Go',y)
        num = num + 1
print(num, 'Go\'s')

1 Ответ

0 голосов
/ 05 марта 2020

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

Когда вы пишете s in 'y', он всегда будет возвращать false, потому что y здесь это символ, который составляет строку значение y символа.

Итак, вам нужно использовать функцию str(param) для преобразования целого числа в строку с тем же значением. Это код, который работает так, как вы хотите.

s = '3'
x = 40
y = 30
num = 0
while y < x :
    if y % 3 == 0 or y % 10 == 3 or s in str(y) :
        print('Go',y)
        num = num + 1
    y=y+1
print(num, 'Go\'s')
...