Как я могу преобразовать эти циклы в циклы while? - PullRequest
0 голосов
/ 22 марта 2019

Извините, очень нубский вопрос здесь (я новичок в python). Может кто-нибудь помочь мне преобразовать все циклы for в этой программе в циклы while в python? Я не могу понять, как. Спасибо!

while True:
word=str(input("Enter a string up to 10 characters: "))
y=0
z=len(word)
while (y<len(word)and y<10):
   print(" "*z,end='')
   for x in range(0,y):
       print(word[x],end='')
   for x in range (y,-1,-1):
       print(word[x],end='')
   y+=1
   z-=1
   print("")
y-=1
z+=1
while(y>0):
    y-=1
    z+=1
    print(" "*z,end='')
    for x in range(0,y):
         print(word[x],end='')
    for x in range(y,-1,-1):
       print(word[x],end='')
    print("")

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

В общих чертах:

for x in range(a,b,c):
    ... your code ...

преобразуется в:

x = a
while x < b:             # if c is negative, use while x > b: instead
    ... your code ...
    x += c

, зная, что:

range(a,b) совпадает с range(a,b,1)

range(b) совпадает с range(0,b,1)

0 голосов
/ 12 апреля 2019

Возможно, немного поздно с ответом ...

while True:
    word=str(input("Enter a string up to 10 characters: "))
    y=0
    z=len(word)
    while (y<len(word)and y<10):
       print(" "*z,end='')
       x=0
       while x<y:
           print(word[x],end='')
           x+=1
       x=y
       while x != -1:
           print(word[x],end='')
           x-=1
       y+=1
       z-=1
       print("")
    y-=1
    z+=1
    while(y>0):
        y-=1
        z+=1
        print(" "*z,end='')
        x=0
        while x<y:
            print(word[x],end='')
            x+=1
        x=y
        while x!=-1:
            x-=1
            print(word[x],end='')
        print("")
0 голосов
/ 22 марта 2019

Существует механическое преобразование.Начиная с

for name in iterable:
    body

У вас есть

_name = iter(iterable)
try:
    while True:
        name = next(_name)
        body
except StopIteration:
    pass

Однако они не нужны для циклов.

print(" " * (10 - y), word[:y], word[:y:-1], sep="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...