파이썬 코드 질문
조회수 1655회
6.텍스트로 데미지를 입력받아 체력이 낮아짐, save라고 입력시 남은 체력 저장
코딩 출력시 글씨
아래에 상황에 맞는 코드를 알려주세요!
7.프로그램을 실행시키면 이전에 저장한 체력에서 시작하도록 파일 읽기 단, 파일이 없을 경우 “파일을 찾을 수 없습니다.”를 출력하라. (앞에서 작성한 프로그램을 수정) 제가 앞서 질문한 내용이랑 연관됩니다.!
아래에 상황에 맞는 코드를 알려주세요!
세이브 된 파일을 불러오는 중
현재 체력은 120 입니다.
데미지를 몇 입었습니까? : 10
체력이 110 남았습니다.
데미지를 몇 입었습니까? : 110
체력이 0 남았습니다.
6번문제
f = open('score.txt', 'w')
hp = 280
while(1):
print("현재 체력은 %d 입니다." %hp)
sub = input("데미지를 몇 입었습니까 : ")
if(sub == "save"):
print("저장했습니다.")
break
else:
hp -= int(sub)
f.write(hp)
f.close()
save를 입력하면 120점이 메모장에 저장되어야 하는데 여기서 어느 부분을 수정해야 할까요?
7번 문제
print('세이브된 파이을 불러오는중.....')
f = open('score.txt', 'w+')
hp = 120
while(1):
print("현재 체력은 %d 입니다." %hp)
sub = input("데미지를 몇 입었습니까 : ")
if(hp == 'sub'):
print("체력이 0 남았습니다.")
break
else:
hp -= int(sub)
f.write()
f.close()
어떻게 해야 sub 값이 0일떄 메모장에 0이라고 저장될까요?
f.write에 어떤 값을 써야 할지 알려주세요
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
파일 존재 여부 확인
https://docs.python.org/ko/3/library/os.path.html#os.path.exists
만약 별도의 모듈을 사용하지 않고자 하신다면 읽기 형식으로 연 후에 예외처리를 하셔도 됩니다.
예외처리
나머지는 작성하신 코드 위치만 조정하면 될 것 같습니다.
-
f = open('score.txt', 'w') hp = 280 while 1: print("현재 체력은 %d 입니다." % hp) sub = input("데미지를 몇 입었습니까 : ") if sub == "save": print("저장했습니다.") break else: hp -= int(sub) f.write('%s' % hp) f.close()
6번은 마지막에
f.write('%s' % hp)
로 바꿔주면 남은 hp가 저장될 겁니다.
string
만 파일에 저장할 수 있습니다.
import os.path path = 'score.txt' if os.path.isfile(path): with open(path, 'r') as f: hp = int(f.read()) print('세이브된 파일을 읽었습니다.') else: print('파일을 찾을 수 없습니다.')
7번은
os.path.isfile
을 사용해서 해당 위치에 파일이 있는지 확인합니다.
있다면True
, 없다면False
를 반환합니다.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력