#python #python-3.x #while-loop
#python #python-3.x #цикл while
Вопрос:
Кажется, я не могу понять, почему я не могу заставить этот цикл повторяться — вместо этого он всегда прерывается. Я считаю, что если бы это был цикл, сценарий (надеюсь) работал бы в соответствии с инструкциями.
Я приложил инструкции к сценарию и встроил их, чтобы объяснить свое мышление.
Танки!
скрипт принимает вводимые пользователем данные, и каждый раз, когда скрипт получает строку, он должен добавлять эту строку к растущей строке. Вновь добавленные строки должны быть добавлены к растущей строке с индексом, равным длине вновь добавленной строки. Если длина вновь добавленной строки равна или больше растущей строки, этот скрипт должен добавить новую строку в конец растущей строки. Когда этот скрипт получает пустой ввод, это приложение должно прекратить прием ввода и вывести растущую строку на консоль.
if __name__ == "__main__":
user_word = input()
second_word = input()
results = user_word second_word[:]
i = results
while results == "": # When script receives a blank input
print(results) # stop receiving input and print the growing string
break
if user_word >= results: # if newly added string length equal to or larger
results = user_word second_word[:]
user_word.join(results) # the new string added to end of the growing string.
print(results)
if user_word < results: # new string is shorter than the existing string THEN
results = user_word second_word[:] # add the new string at the index equal to the new string length.
user_word.join(results) # Newly added strings should be added to the growing string
print(results)
Комментарии:
1. его даже не имеет правильного отступа, как это будет работать?
2. вы понимаете мой ответ?
3. Я думаю, что по какой-то причине отступ был испорчен, когда я вставил его. на самом деле он был отформатирован прямо перед рукой.
Ответ №1:
s = ''
while True:
user_word = input('Enter string')
if len(user_word) >= len(s):
s = s user_word
elif user_word == '':
print(s)
break
else:
s = s[:len(user_word)] user_word s[len(user_word):]
Комментарии:
1. Пожалуйста, добавьте некоторые пояснения к вашему ответу. Объяснение базовой логики важнее, чем просто предоставление кода. Это помогает автору и другим читателям самостоятельно решить эту и подобные проблемы, предоставляя им подсказки к знаниям, необходимым для расширения их навыков программирования.
2. op четко понимает это, или сказал бы что-нибудь @Ironkey
3. это предположение вообще неверно, они могут пытаться выяснить, как это работает в этот самый момент
4. пользователь был замечен 57 минут назад, я ответил 2 часа назад. Поскольку это экспертная тема, я предположил, что оп понял. Но я спрошу оп, нужны ли им объяснения @Ironkey
5. ну вот, они согласились. но на будущее: вы отвечаете не только на ОП, но и на всех остальных, кто приходит на сайт в поисках ответа на эту проблему. Так что в любом случае лучше добавить объяснение. Поздравляю с принятым и счастливым кодированием : ^)