"Automate the Boring Stuff with Python"책을 통해 작업 중이며 연습 문제 중 하나에 붙어 있습니다. 내 솔루션은 셸에서 작동하지만 프로그램으로 실행하려고 할 때가 아닙니다.셸에서 프로그램으로 작동하도록 코드를 가져올 수 없습니다.
spam = ['apples', 'bananas', 'tofu', 'cats']
으로 구분 모든 항목에 문자열을 인수로 목록 값을 받아 반환하는 함수를 작성 :
는이 같은 목록 값을 말해봐 : 여기에 문제의 프롬프트는 쉼표와 공백이 있으며 마지막 항목 앞에 삽입됩니다. 예를 들어 이전 스팸 목록을 함수에 전달하면 '사과, 바나나, 두부 및 고양이'가 반환됩니다. 하지만 함수는 전달 된 모든 목록 값을 처리 할 수 있어야합니다.내 코드입니다 위의 프로그램에서 단계를 함께 그룹화하려고하면 결과는 다음과 같습니다.'apples, bananas, tofu and cats'
그러나 때 나는 그 결과 내가 원하는 얻을, 쉘에서 목록을 정의하고 그것에 위의 단계를 실행하면
def listToString(usersList): myStr = ', '.join(str(i) for i in usersList[0:-1]) # converts all but last list element to string and joins with commas myStr = myStr + ' and ' + str(usersList[-1]) # adds on "and", converts final list element to string and adds to myStr print(myStr) myList = input() listToString(myList)
: 여기
어떤 아이디어?
시간을내어이 책을 읽으면 대단히 감사합니다. 이미 동일한 연습 문제에 대한 몇 가지 다른 주제가 이미 있으므로 (here 및 here), 나는 계속 나아가서 게시했습니다.
'listToString'에는 문자열이 아닌 실제 목록을 전달해야합니다. 'input' (파이썬 3에서) _always_는 문자열을 반환합니다. –
연습 문제는 사용자가 입력 한 목록을 가져 오기로되어 있다고 말하지 않습니다. 스크립트에'spam'리스트를 작성하십시오. –
OP에게 'input'에 의해 반환 된 문자열을 목록으로 변환하라는 모든 사람들에게 : 질문을 읽으십시오! 연습은 _list_을 허용하는 함수를 작성하는 것입니다. 불필요한 여분의 합병증을 추가하는 것입니다.이 운동은 단순히이 운동에 필요하지 않습니다. –