그러니까 제 말은 로또 번호가 1이라면 money가 2를 더하고 또 1이 나오면 money + 2를 하고싶은 겁니다.
+0
2021년 9월 21일
일단 money + 2 만 쓰신다고 해서 기존에 money 가 가리키고 있는 메모리 주소 값에 2를 더한 값을 money 변수가 참조하진 않습니다. money = money + 2 또는 money += 2 로 쓰셔야 하지 않을까용? 그리고 money = 0 위치도 지금처럼 if 문 안에 있으면 안됩니다. 그럼 if 문 내부가 실행될 때 마다 0으로 초기화 될테니까용
+0
2021년 9월 23일
import random for q in range(1): a = random.randint(1, 30) print("당신의 숫자는...{}입니다!".format(a)) money = 0 if a == 30: print("축하합니다.복권 1등에 당첨되셨습니다!") money += 10000 print(money) elif a == 29: print("축하합니다.복권 2등에 당첨되셨습니다!") money += 8000 print(money) elif a == 28: print("축하합니다.복권 3등에 당첨되셨습니다!") money += 6000 print(money) elif a == 27: print("축하합니다.복권 4등에 당첨되셨습니다!") money += 4000 print(money) elif a == 26: print("축하합니다.복권 5등에 당첨되셨습니다!") money += 2000 print(money) else: print("아쉽습니다.복권에 당첨되지 못하였습니다.") print(money)
+0
2021년 9월 23일
왜 이 코드는 money가 다시 0이 되죠?
+0
2021년 9월 23일
위에서도 말씀드렸지만 반복문 안에 money = 0 이 있으면 반복될 때 마다 0 으로 초기화됩니당. 코드가 어떻게 진행되는지를 생각해보시면 좋겠어용
이렇게 한 다음에 그다음에 또 복권에 당첨되면 6000(money) + 복권의 액수 를 계속 money에 간직하고 있는 거에요.
+0
2021년 9월 29일
그러니까 프로그램 한번 실행한 후에 어떤 결과가 나오고 프로그램 종료 후에 다시 실행했을 때도 그 결과가 남아있어야 되는건가요?
+0
2021년 9월 29일
그렇다면 이건 sql 등과 같은 db 를 배우셔야 할일 같습니당. 아주 간단하게는 파일로 해당값을 쓰고, 다시 실행할 때 불러오고 하는 행위 등을 할 수는 있겠지만용
+0
2021년 9월 30일
그럼 spl 혹은 db를 써서 완성하는 법을 제발 알려주세요ㅠㅠ
+0
2021년 10월 1일
움.. 그건 그냥 글로 알려드리기엔 너무 복잡해서용 ㅠㅠ SQL 도 따로 배우셔야 하고 파이썬으로 DB 연동하는 법도 배우셔야 합니당. ㅠㅠ 한번 구현해보고 싶어서 하시는거라면 가볍게 파일 읽기 쓰기를 배우셨으니 그걸 활용해보시는게 어떨까용? 결과를 txt 파일로 저장하고 다시 프로그램을 실행할 때 해당 파일에서 이전 결과값을 가져와서 초기값으로 둔 뒤에 누적시키는 방법을 쓰면 될겁니당
+0
2021년 10월 4일
while True: while today <= 2: random.randint(1, 2) print("{}번째날".format(today)) guess = int(input("시민이 {}명 남았습니다.1과 2중 누가 시민일까요?: ".format(NUM_TRIES))) if ANSWER != guess: NUM_TRIES -= 1 print("아쉽습니다.좀비입니다.") print("시민중 1명이 감염당하고 {}명 살아있습니다.".format(NUM_TRIES)) if ANSWER == guess: NUM_TRIES += 1 print("시민입니다.") print("시민중 1명이 더 늘어서 시민이 {}명 살아있습니다.".format(NUM_TRIES)) today += 1 if NUM_TRIES == 0: break
+0
2021년 10월 4일
이렇게 했는데 계속 시민이 1이라서 랜덤하게 시민이되면 좋겠는데 무슨 방법이 없나요?
+0
2021년 10월 4일
random.randint(1, 2) 코드는 어디 쓰이는 건가요? 반환값이 변수에 할당되지 않으면 이 코드는 의미가 없을거에요
처음 올려주신 코드에는 나머지 코드가 생략되어 있었는데, ANSWER 가 시민을 의미한다면 while 문 바로 밑에 있는 의미없는 random.randint(1, 2) 반환값을 ANSWER 가 받아야 할겁니당. 왜 이렇게 하면 계속 ANSWER 가 바뀔 수 있는지를 생각해보시면 좋겠어요. 또한 지금 코드에서는 왜 안되는 지도요
+0
2021년 10월 10일
마피아 게임을 잘 모르다보니 정확히 어떻게 구성되어야 하는지를 잘 모르겠네요ㅠ
+0
2021년 10월 16일
앗! 바빠서 답변을 못했내요.
+0
2021년 10월 16일
코린이라 코드로...........
+0
2021년 10월 17일
이전에 짜셨던 코드를 바탕으로 Develop 하는건 좋다고 생각합니당! 바로 답은 못드릴 수도 있지만 언제든 관련 질문 남겨주세용~!
+0
2021년 10월 17일
그러니까 이전에 짰던 코드의 어느 부분을...
+0
2021년 10월 17일
그리고
+0
2021년 10월 17일
import random
ANSWER = random.randint(1, 2) NUM_TRIES = 2
today = 1 guess = -1 tries = 0
while True: ANSWER += random.randint(1, 2) print("{}번째날".format(today)) guess = int(input("시민이 {}명 남았습니다.1과 2중 누가 시민일까요?: ".format(NUM_TRIES))) if ANSWER != guess: NUM_TRIES -= 1 print("아쉽습니다.좀비입니다.") print("시민중 1명이 감염당하고 {}명 살아있습니다.".format(NUM_TRIES)) if ANSWER == guess: NUM_TRIES += 1 print("시민입니다.") print("시민중 1명이 더 늘어서 시민이 {}명 살아있습니다.".format(NUM_TRIES)) today += 1 if NUM_TRIES == 0: break
import random with open("all lotto money.txt", "w") as f: f.write("")
money = 0 for q in range(1): a = random.randint(1, 30) print("당신의 숫자는...{}입니다!".format(a)) if a == 30: print("축하합니다.복권 1등에 당첨되셨습니다!") money += 10000 print("{}원".format(money)) elif a == 29: print("축하합니다.복권 2등에 당첨되셨습니다!") money += 8000 print("{}원".format(money)) elif a == 28: print("축하합니다.복권 3등에 당첨되셨습니다!") money += 6000 print("{}원".format(money)) elif a == 27: print("축하합니다.복권 4등에 당첨되셨습니다!") money += 4000 print("{}원".format(money)) elif a == 26: print("축하합니다.복권 5등에 당첨되셨습니다!") money += 2000 print("{}원".format(money)) else: print("아쉽습니다.복권에 당첨되지 못하였습니다.") print("{}원".format(money))
w = money with open('lotto_money.txt', 'a') as f: f.write(str(w) + "\n")
with open('lotto_money.txt', 'r') as f: prize = 0 for line in f: prize += int(line)
with open('all lotto money.txt', 'w', encoding="utf-8") as f: f.write(str(prize) + "원")
+0
2021년 11월 3일
이렇게 했는데 all lotto money.txt가 10000원이고 프로그램이 시작되어서 all lotto money.txt가 복권 당첨으로 늘어나기도 하면서 프로그램을 실행할때 마다1000원씩 all lotto money.txt에서 사라지게 하려면 무슨 방법이 없나요?
+0
2021년 11월 3일
참고로 아예 닫은 다음에10000원으로 시작이 되고 파이참에서 초록색 실행키를 누르면 계속 all lotto money.txt가 늘어나는 겁니다.
+0
2021년 11월 3일
움.. 점점 프로그램이 커지는군용. 코드로 바로 작성하시기는 어렵더라도 어떤 단계를 거쳐야 해당 결과가 나올지를 단계별로 생각해보시면 좋겠습니다.
+0
2021년 11월 3일
먼저 지금 코드도 10000원이 유지가 되지 않나용? 그리고 실행할 때 마다 1000원씩 사라지게 하려면 간단히 lotto_money.txt 파일을 읽는 with 문에 가장 마지막에 prize -= 1000 을 써주시면 될겁니당.
+0
2021년 11월 4일
그러면 프로그램 시작할때 all lotto money.txt를 10000원으로 되돌릴건지 물어보고 y를 누르면 되돌리고 n을 누르면 되돌리지 않게 하려면 어떻게 해야 되나요?
yes하면 10000이 되긴 하는데 그다음에 당첨되고 10000원에서 연장 하고싶으니까 no했는데 갑자기 처음에 all lotto money.txt에 저장되는 프로그램 완성했을 때 좀 프로그램 실했는 데 그 값이 되버리네요.... 1000원 씩도 안줄고......
+0
2021년 11월 6일
아 이제 대충 어떤걸 구현하시려고 하는지 알겠네용. 근데 만약 10000원으로 초기화가 되면, lotto_money 도 초기화가 되야 하는건가용?
+0
2021년 11월 6일
네?
+0
2021년 11월 7일
프로그램 시작할때 all lotto money.txt를 10000원으로 되돌릴건지 물어보고 y를 누르면 되돌리고 n을 누르면 되돌리지 않는다고 하셨는데, lotto money.txt 에는 실행한 모든 결과가 누적됩니다. 이렇게 되면 all lotto money.txt 금액을 초기화를 하더라도 다음 실행시에 그동안 lotto money.txt 에 누적된 상금이 all lotto money 에 반영될거에용. 그래도 상관없는지 궁금합니다.
+0
2021년 11월 7일
죄송하지만, 안됍니다
+0
2021년 11월 8일
위 프로그램은 안되는게 맞고, 수정을 해야 하는데 어떻게 구현되야 하는건지 여쭤보는거에용
+0
2021년 11월 8일
제가 생각한대로 작성하는게 아니니 최대한 요구사항을 자세히 말씀해주셔야 오류 발생도 막을 수가 있습니당
+0
2021년 11월 8일
전체 동작을 말하자면 당첨금이 당첨되었을 때, y를 누르면 all lotto money.txt가 10000원이되고 그다음에 뭐가 나오든(n을 하는 경우는 빼고) 10000원이 유지되어야 됩니다.참고로 거기서 돈은 늘어나든 말든 그 동작은 똑같습니다.n을 눌렀을 때는 all lotto money.txt가 유지되고 그다음에 뭐가 나오든(y을 하는 경우는 빼고) 돈이 유지되어 야됩니다.참고로 거기서 돈은 늘어나든 말든 그 동작은 똑같습니다.당첨이 안되었을 때도 똑같습니다.
+0
2021년 11월 10일
감사합니다~! all_lotto_money 는 이해가 됐는데, lotto_money 는 초기화되는 경우가 없는거겠죵? 코드가 너무 지저분해서 함수로 살짝 바꾸고 올리겠습니당
+0
2021년 11월 14일
전체 동작을 말하자면 당첨금이 당첨되었을 때, y를 누르면 all lotto money.txt가 10000원이되고 그다음에 뭐가 나오든(n을 하는 경우는 빼고) 10000원이 유지되어야 됩니다.참고로 거기서 돈은 늘어나든 말든 그 동작은 실행됩니다.n을 눌렀을 때는 all lotto money.txt가 유지되고 그다음에 뭐가 나오든(y을 하는 경우는 빼고) 돈이 유지되어 야됩니다.참고로 거기서 돈은 늘어나든 말든 그 동작은실행됩니다.당첨이 안되었을 때도 똑같습니다.
+0
2021년 11월 14일
제가 댓글을 잘못 올렸네요ㅠㅠ이게 진짜 전체 동작입니다.
+0
2021년 11월 16일
저......
+0
2021년 11월 17일
으아 또 댓글 놓쳤네용 ㅠㅠ 위에 올려주신 것만 확인해보고 코드 올려드릴게용
+0
2021년 11월 17일
유지된다는게 조금 이해가 안되는데, 뭐가 유지가 된다는건가용? 한번 실행할 때 마다 1000원씩 all_lotto_money 에서 빠져야 되는걸로 이해했거든용
+0
2021년 11월 17일
전체 동작을 말하자면 당첨금이 당첨되었을 때, y를 누르면 all lotto money.txt가 10000원이 됩니다.거기서 돈은 늘어나거나 안늘어나는 그 동작은 실행됩니다.n을 눌렀을 때는 all lotto money.txt가 유지됩니다.거기서 돈은 늘어나거나 안늘어나는 그 동작은 실행됩니다. 당첨이 안되었을 때도 위에서 말씀 드린데로 동작이 실행됩니다.
움.. 전 잘되는데 어느 경우에 안되는지 다시 확인해주시면 좋겠습니당. all_lotto_money.txt 말씀하시는게 맞으시죵? all lotto money.txt 가 아니라 all_lotto_money.txt 로 생성됩니다. lotto money 가 아니라 lotto_money.txt 이고용
+0
2021년 11월 19일
아직도 안되요....
+0
2021년 11월 21일
해당 코드를 실행해주신게 맞나용? 전 아무리 봐도 잘되는데.......ㅠㅠ 새로운 디렉토리에서 test.py 와 같이 파일 하나 만드신 후에 최신 코드 복사 후 붙여넣기 하시고 실행해보시면 좋겠어용
댓글 6개
for q in range(1):
a = random.randint(1, 30)
print("당신의 숫자는...{}입니다!".format(a))
money = 0
if a == 30:
print("축하합니다.복권 1등에 당첨되셨습니다!")
money += 10000
print(money)
elif a == 29:
print("축하합니다.복권 2등에 당첨되셨습니다!")
money += 8000
print(money)
elif a == 28:
print("축하합니다.복권 3등에 당첨되셨습니다!")
money += 6000
print(money)
elif a == 27:
print("축하합니다.복권 4등에 당첨되셨습니다!")
money += 4000
print(money)
elif a == 26:
print("축하합니다.복권 5등에 당첨되셨습니다!")
money += 2000
print(money)
else:
print("아쉽습니다.복권에 당첨되지 못하였습니다.")
print(money)