2017-11-25 6 views
1

Python 3에서 함수 작성을 학습하면됩니다. 필자는 사용자로부터 여러 요소를 가져 와서 고유 한 요소를 출력하는 일련의 기능을 보유하고 있습니다. 나는 많은 수의 입력이있을 경우 하나씩, 다음에 하나씩, 새로운 줄마다 하나씩 연결되므로 프로그램 외관을 향상시킬 수 있는지 궁금합니다. 이상적으로, 사용자가 입력 라인을 입력 할 때마다 요소를 취하고 다음 라인에서 같은 라인이 재설정됩니다.입력 쿼리를 1 행 (Python 3)으로 유지할 수 있습니까?

여기에 내가 가진 무엇 : (Jupyter 노트북에서)

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() 

출력은 입력하세요에게 몇 가지를 추가 라인을 각 요소 사용자 입력에 대해. 50 입력, 50 라인; 지저분 해 보인다. 함수를 여러 줄로 한 줄만 사용하는 방법을 찾을 수 없습니다.

+1

프롬프트를 생략하면됩니다. 'iter' 함수를 사용하여 iter (input, "") : userlist.append (value)'또는 단순히'userlist = list (iter (input, ""))' – chepner

답변

0

지도 함수를 사용하여 한 줄에 입력 한 다음 모든 데이터를 분할 한 다음지도를 만들어지도 객체를 만든 다음이를 변수에 목록을 반환하는 목록 함수에 전달하면됩니다 이 :

var = list(map(int,input().split())) 
+0

파이썬 3입니다 :'raw_input'은 존재하지 않으며'map'은리스트 (그리고 확실히 배열이 아닙니다)를 리턴하지 않고 반복자를 만듭니다. – chepner

+0

미안해, python3을 요구 한 것을 보지 못했다. 그래서 지금은 python 3.x에서 작동한다. – EX0MAK3R

+0

아마도 나는 정확하게 (묻고) 설명하지 않았다. 사용자가 무언가를 입력하고 Enter 키를 누릅니다. 그런 다음 다른 프롬프트가 표시됩니다. 공백 중에 Enter 키를 누르면 입력 루프가 끊어집니다. 나는 파이썬이 새로운 라인을 계속 제공하지 못하도록하고 대신 매번 같은 라인을 다시 제공하기를 희망했다. – Idleness

0

입력 할 때마다 콘솔에서 텍스트를 지우시겠습니까? 그럼 당신은 유닉스 시스템에서 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을 사용할 수 있습니다 생각합니다.