2014-04-11 2 views
1

코드로 어려움을 겪고 :파이썬 너무 열심히, 그냥 변수

loop = 0 

def main(): 
    while loop == 0: 
    Num = input("Please Enter The Number Of People That Need The Cocktails ") 
    print() 
    print(" Type END if you want to end the program ") 
    print() 
    for count in range (Num): 
     with open("Cocktails.txt",mode="w",encoding="utf-8") as myFile: 
      print() 
      User = input("Please Enter What Cocktails You Would Like ") 
      if User == "END": 
      print(Num, "Has Been Written To The File ") 
      exit() 
      else: 
      myFile.write(User+"/n") 
      myFile.write(Num+"/n") 
      print() 
      print(User, "Has Been Written To The File ") 

오류 :

line 9, in main for count in range (Num): TypeError: 'str' object cannot be interpreted as an integer

나는 그것이 반복 횟수로 변수를 설정하기 위해 노력하고있어 얼마나 많은 칵테일을 원하니?

예 : 스크립트는 다음 사용자는 그가 여섯 번 원하는 칵테일 무엇을 입력하도록 요청해야

How many cocktails ? 6 

.

답변

1

파이썬에서 input()은 기본적으로 문자열을 반환합니다. 에 Num 변경 : 또한

Num = int(input("Please Enter The Number Of People That Need The Cocktails ")) 

MyFile.write(Num + "\n") 

읽어야합니다

MyFile.write(str(Num) + "\n") 

그리고 단지 레코드를, 당신은 대체 할 수

loop = 0 
while (loop == 0): 

로 :

while True: 
+0

benji :) 감사합니다! – user3525198

+0

@Alex Thornton,/미안하지만 :/질문을 게시하자마자 솔루션을 작성하기 시작 했으므로 브라우저는 게시했을 때만 페이지를 새로 고칩니다. 왜 당신의 이유가 받아 들여지지 않았는지 이해하지 못하고, 타임 스탬프로 판단하면 훨씬 이전에 게시되었습니다 ... 또한 (진정한) : –

+0

@Alex Thornton 나는 슬프게도 대답이 일찍 게시 된 이유를 모르지만, 그러나 나는 네가 한 것처럼 내 포스트에 많은 노력을 기울였다. 당신은 내 동안 copypasta 무료 (사실) : 추천,하지만 난 정말 내 작품을 제거하고 싶지 않아요 : ( –

1

inputint()을 입력하면 Num을 작동 가능한 정수로 만들 수 있습니다. 이것은 파이썬 3로 인해 수행해야합니다, input는 항상 문자열 반환은 현재 상태의에서 코드와

Num = int(input("Please Enter The Number Of People That Need The Cocktails ")) 

을, 당신은 전혀 range()으로 작동하지 않습니다 문자열에서 range을 구성하기 위해 노력하고있다 정수가 필요합니다.


편집 : 이제

당신은 교체해야합니다

myFile.write(Num+"/n") 

로 : 당신이 명시 적으로해야합니다, 그래서

myFile.write(str(Num)+"/n") 

Num는,이 시점에서 정수 문자열을 개행 문자와 연결합니다.

+0

@ user352198 문제를 해결하려면'str (Num) + '\ n''을 대신 사용하십시오. 'Num'은이 시점에서 정수입니다. 따라서 명시 적으로 줄 바꿈 문자와 연결하는 문자열을 만들어야합니다. –

+0

@ user3525198 스크립트를 디버그하려 했습니까? –

+0

여기서 abouts는 str (Num) + '\ n'을 넣습니다. – user3525198