Как создать программу, которая предложит пользователю ввести список, затем программа обратится к списку и распечатает его для пользователя
Как я могу создать программу, которая предложит пользователю ввести список, затем попросить программу перевернуть список и распечатать его для пользователя. Это обращение должно быть ручным и не использовать функцию reverse(). Пока у меня есть...
def main():
print("This program will reverse your list!")
list = []
userlist = input( "Enter your list:")
list.append(userlist)
reverselist = userlist[::-1]
print("Your list in reverse is: ", reverselist)
input ("Press enter to close program")
main()
Это работает, но не хранит список, это скорее строка. И если вы введете яблочный банан, он выплевывает ананаб эльпа.
4 ответа
def main():
print("This program will reverse your list!")
# get a list of strings
items = []
while True:
s = input("Next item (or <Enter> to quit): ")
if s:
items.append(s)
else:
break
# make a reversed copy of the list
items_len = len(items)
smeti = [0] * items_len
for i,val in enumerate(items)
smeti[items_len - i - 1] = val
print("Your list in reverse is: {}".format(smeti))
input("Press enter to close program")
if __name__=="__main__":
main()
Вы перевернули строку, выполнив userlist[::-1]
вот почему banana
читается как ananab
, Что вы действительно должны сделать, если разделить пробелами и поменять местами слова.
Попробуйте изменить:
userlist = input( "Enter your list:")
list.append(userlist)
reverselist = userlist[::-1]
чтобы:
userlist = input( "Enter your list:")
reverselist = " ".join(reversed(userlist.split()))
Полезная "ручная" идиома для обращения к списку - это цикл while:
>>> li
[0, 1, 2, 3, 4]
>>> il=[]
>>> while li:
... il.append(li.pop())
...
>>> il
[4, 3, 2, 1, 0]
Итак, ваша программа:
def main():
print("This program will reverse your list!")
userlist = input( "Enter your list separated by spaces:")
li=userlist.split()
reverselist=[]
while li:
reverselist.append(li.pop())
print("Your list in reverse is: ", reverselist)
main()
Когда запустить:
This program will reverse your list!
Enter your list separated by spaces:apple banana peach
Your list in reverse is: ['peach', 'banana', 'apple']
list = []
def reverselyst(list):
print ("Please enter list values one after the other or press space to stop:")
while True:
userinput = input()
if userinput != ' ':
list.append(userinput)
else:
print (list)
break
print("the reverse of list is" + str(list[-1: :-1]))
reverselyst(list)