是否可以将输入查询保留为1行(Python 3)
问题描述:
只需在Python 3中学习,即可进行函数构建。我有一组函数可以接受来自用户的多个元素并输出唯一的元素。我想知道是否可以改进程序外观,因为如果有大量的输入,它们会连成一个,一个接一个,一个接一个,一个接一个。理想情况下,每次用户点击输入时,输入行都会将元素和同一行重置为下一个值。是否可以将输入查询保留为1行(Python 3)
这是我有:
userlist = []
uniquelist = []
def make_list(list): #function to assign only unique list values
for u in userlist:
if u not in uniquelist: #only append element if it already appears
uniquelist.append(u)
else:
pass
print("The unique elements in the list you provided are:", uniquelist)
def get_list(): #get list elements from user
i = 0
while 1:
i += 1 #start loop in get values from user
value = input("Please input some things: ")
if value == "": #exit inputs if user just presses enter
break
userlist.append(value) #add each input to the list
make_list(userlist)
get_list()
输出(在Jupyter笔记本)增加了一个请输入一些事情:行对每个元素的用户输入。 50路输入,50路;看起来马虎。我无法找到让函数多次使用单行的方法。
答
您只需要使用map函数在一行中输入数据,然后拆分每个数据,然后对它进行类型转换以形成一个map对象,然后将其传递给list函数,该函数将返回变量中的列表这个:
var = list(map(int,input().split()))
答
你想在每次输入后清除控制台中的文本吗?然后,你可以在Unix系统上使用的Windows os.system('CLS')
或os.system('clear')
:
import os
os.system('CLS')
user_input = ''
while user_input != 'quit':
user_input = input('Input something:')
os.system('CLS') # Clear the console.
# On Unix systems you have to use 'clear' instead of 'CLS'.
# os.system('clear')
另外,我想你可以使用curses
。
只是省略提示。你可以使用'iter'函数来替换'while'循环来获取iter中的值(input,“”):userlist.append(value)',或者简单地'userlist = list(iter(input,“”) )' – chepner