2017-02-08 2 views
1

이것은 중복 된 것처럼 보일 수 있지만 다른 것은 적용되지 않습니다. 그래서 나는 돼지 저금통을 만들려고 노력하고 있지만 숫자를 사용하는 동안 새로운 라인을 추가하는 방법을 알 수는 없습니다. 지금은 줄을 추가하는 유일한 방법이므로 문자열을 사용하고 있습니다. 그러나 두 숫자를 더하면 문자열과 같이 추가됩니다. 예를 들어 5.93을 두 번 입력 한 경우 "5.935.93"이 인쇄됩니다. 그래서, 그것을 문자열로 변환해야하지만 그때 나는 새로운 라인을 추가 할 수 없을 것입니다. 여기 내 코드는 다음과 같습니다.숫자와 문자열을 파이썬으로 추가

def piggybank(): 
    file = open('piggybank.txt','r+') 
    money = input('How much money are you adding?') 
    file.write(money + '\n') 
    for line in file: 
     money += line 
    print("You now have:\n", money) 
    file.close() 

3 번째 줄에는 돈을 벌 수 있지만 4 번째 줄에는 새 줄을 추가 할 수 없습니다. 누군가 도울 수 있습니까?

답변

3

moneyInteger으로 유지할 수 있지만 작성시 %s을 사용하십시오.

def piggybank(): 
    file = open('piggybank.txt','rb') 
    money = input('How much money are you adding?') 
    file.write(str(money) + "\n") 
    for line in file: 
     money += float(line.strip()) 
    print("You now have:\n" + str(money)) 
    file.close() 
+0

내가 선호하는 문자열 substituion는'지금 인 String.format()'는 것을 추가 할 수 있지만, 어쩌면 더 간단한 방법은'RB에 잘 인쇄 (돈, 파일 = 파일)' –

+0

것 당신 쓸 수 없다. 그것은 바이너리를 읽는 것입니다. – PokeBros

+0

r +로 변경 했는데도 여전히 작동하지 않습니다. 그것은 돈을 추가하지는 않지만 금액을 여러 번 인쇄합니다. – PokeBros

0

파일 :에 쓸 open('piggybank.txt', 'wb')에 새로운 변수 세트를 만들 필요가 수학을 할 때 떠 다니는 것.

float(money) += float(line) 
0

당신은 변환 할 수 있습니다 : 파일에 기록 할 경우에도, 당신은 당신이 할 수

def piggybank(): 
    filew = open('piggybank.txt','wb') 
    file = open('piggybank.txt','rb') 
    money = input('How much money are you adding?') 
    filew.write('%s\n' % money) 
    for line in file: 
     money += line 
    print("You now have:\n%s" % money) 
    filew.close() 
    file.close() 
0
  • Addtion이 숫자 objects.You 사이에 할 수있는 것은 input() 당신에게 str (문자열)을 얻었다 객체를 입력하고 알 필요가있다. 그리고 float()을 사용하여 strfloat으로 변환해야합니다.
  • 흔적과 오류를 통해 다음과 같은 결론을 얻었습니다. Refernece doc links는 strip() doc, open() doc입니다.

    def piggybank(): 
    file = open('piggybank.txt','a') #open file for appending to the end of it. 
    money = input('How much money are you adding? ') 
    file.write(money + '\n') # Write strings to text file. 
    file.close() 
    file = open('piggybank.txt','r') 
    sum = float(0) # initialize sum with zero value. 
    for line in file: 
        sum += float(line.strip('\n')) # srtip '\n' and convert line from str to float. 
    print("You now have: %s" % sum) 
    file.close() 
    
관련 문제