Я новичок в python и столкнулся с проблемой, я хочу пропустить маленькую букву «m» с помощью инструкции «Продолжить» и хочу печатать другие символы, но почему это пропускает все остальные символы «eIsXyz», но я хочу этот вывод "MyNaeIsXyz" где проблема
name = "MyNameIsXyz"
len = len(name)-1
start = 0
while(start<=len):
if (name[start]= = "m"):
continue
print(name[start])
start += 1
выход
M
y
N
a
Это должен быть бесконечный цикл…!?
Вы увеличиваете start после continue
, чтобы получить бесконечный цикл, как только нажмете name[start]= = "m"
name = "MyNameIsXyz"
len = len(name)-1
start = 0
while(start<=len):
if (name[start]= = "m"):
start += 1
continue
print(name[start])
start += 1
Решит вашу проблему самым непосредственным образом, но есть способы добиться этого без continue
, которые намного яснее:
name = "MyNameIsXyz"
for c in name:
if c!='m':
print(c)
или просто
name = "MyNameIsXyz".replace("m","")
print(name)
Это пропускает обработку первого символа…
Вот гораздо более простой способ
name = 'MyNameIsXyz'
for letter in name:
if letter != 'm':
print(letter)
Если вы хотите сделать это с циклом while (используя свой стиль)
name = "MyNameIsXyz"
start = 0
while(start<=len(name) - 1):
if name[start] != 'm':
print(name[start])
start += 1
Вы можете попробовать это:
name = "MyNameIsXyz"
result = ""
for i in name:
if i != "m":
result += i
print(result)
ключевое слово continue пропускает нижнюю часть этого цикла. Поскольку ваш прирост находится в нижней части, он не увеличит значение start. Значение start получает одно и то же значение снова и снова и создает бесконечный цикл.
Либо вам нужно увеличить значение перед продолжением, либо вы можете сделать это простым способом, как это.
name = "MyNameIsXyz"
for letter in name:
if letter != 'm':
print(letter, end = "")