質問するログイン新規登録

質問編集履歴

6

関数ask_numberの変更

2020/03/16 15:42

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -17,16 +17,15 @@
17
17
 
18
18
 
19
19
  def ask_number():
20
- n = 0
21
- s = input("回答:")
22
20
  while True:
21
+ n = 0
22
+ s = input("回答:")
23
23
  if s.isdigit():
24
24
  n = int(s)
25
25
  if VAL_MIN <= n <= VAL_MAX:
26
- break
26
+ return n
27
+
27
28
  print("{}以上{}以下の整数を入力してください\n".format(VAL_MIN, VAL_MAX))
28
- return ask_number()
29
- return n
30
29
 
31
30
 
32
31
  def ask_yes_no():
@@ -74,7 +73,6 @@
74
73
 
75
74
 
76
75
  game()
77
-
78
76
  ```
79
77
 
80
78
 

5

関数ask_numberの変更

2020/03/16 15:42

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -10,46 +10,71 @@
10
10
 
11
11
  ```python
12
12
  import random
13
+ # import os
13
14
 
15
+ VAL_MIN = 1
16
+ VAL_MAX = 100
14
17
 
18
+
19
+ def ask_number():
20
+ n = 0
21
+ s = input("回答:")
15
- while True:
22
+ while True:
16
- num = random.randint(1,100)
17
- count = 0
18
- a = ""
19
- print("1~100のランダムな整数を生成しました、正しい数字を当ててください。\n")
20
- while a != num:
21
- a = input("回答:")
22
- if a.isdigit() != True:
23
+ if s.isdigit():
23
- print("0以上100以下の整数を入力してください\n")
24
- continue
25
- a = int(a)
24
+ n = int(s)
25
+ if VAL_MIN <= n <= VAL_MAX:
26
+ break
27
+ print("{}以上{}以下の整数を入力してください\n".format(VAL_MIN, VAL_MAX))
28
+ return ask_number()
29
+ return n
30
+
31
+
32
+ def ask_yes_no():
33
+ print("もう一度遊びますか?y/n")
34
+ while True:
35
+ ans = input()
26
- if a > 100 or a < 0 or type(a) != int:
36
+ if ans in ('y', 'n'):
37
+ return ans
38
+
27
- print("0以上100以下の整数を入力してください\n")
39
+ print("※y(yes)かn(no)を入力してください\n")
40
+
41
+
42
+ def play():
43
+ print("{}~{}のランダムな整数を生成しました、正しい数字を当ててください。\n".format(VAL_MIN, VAL_MAX))
44
+ num = random.randint(VAL_MIN, VAL_MAX)
28
- continue
45
+ try_count = 0
46
+
47
+ while True:
48
+ n = ask_number()
49
+ try_count += 1
50
+
29
- if a == num:
51
+ if n == num:
30
52
  print("おめでとうございます、正解です!")
31
- count += 1
53
+ print("チャレンジ回数{}、次もがんばってください。".format(try_count))
32
- break
54
+ return
55
+
33
- elif a > num:
56
+ if n > num:
34
57
  print("答えより大きいです、もう一度当ててみましょう!\n")
35
58
  else:
36
59
  print("答えより小さいです、もう一度当ててみましょう!\n")
37
- count += 1
38
- print("チャレンジ回数{}、次もがんばってください。".format(count))
39
- print("もう一度遊びますか?y/n")
40
- b = ""
41
- while b != "y" and b != "n":
42
- print("※y(yes)かn(no)を入力してください!\n")
43
- b = input()
44
- if b == "y":
45
- print("\n" * 100)
46
- continue
47
- else:
48
- break
49
60
 
50
- print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
51
61
 
62
+ def clear_screen():
63
+ print("\033[2J") # for ANSI terminal
64
+ # # os.system('cls') # for windows
52
65
 
66
+
67
+ def game():
68
+ while True:
69
+ play()
70
+ if ask_yes_no() == 'n':
71
+ print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
72
+ return
73
+ clear_screen()
74
+
75
+
76
+ game()
77
+
53
78
  ```
54
79
 
55
80
 

4

全体的な修正

2020/03/16 15:35

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -11,41 +11,45 @@
11
11
  ```python
12
12
  import random
13
13
 
14
- flag = "y"
14
+
15
- while flag == "y":
15
+ while True:
16
16
  num = random.randint(1,100)
17
- count = 1
17
+ count = 0
18
- a = 0
18
+ a = ""
19
- print("1~100のランダムな数を生成しました、正しい数字を当ててください。\n")
19
+ print("1~100のランダムな数を生成しました、正しい数字を当ててください。\n")
20
20
  while a != num:
21
21
  a = input("回答:")
22
+ if a.isdigit() != True:
23
+ print("0以上100以下の整数を入力してください\n")
24
+ continue
22
25
  a = int(a)
23
- while (a > 100) | (a < 0):
26
+ if a > 100 or a < 0 or type(a) != int:
24
- print("0以上100以下の数を入力してください\n")
27
+ print("0以上100以下の数を入力してください\n")
25
- a = input("回答:")
26
- a = int(a)
27
28
  continue
29
+ if a == num:
30
+ print("おめでとうございます、正解です!")
31
+ count += 1
32
+ break
28
- if a > num:
33
+ elif a > num:
29
34
  print("答えより大きいです、もう一度当ててみましょう!\n")
30
- elif a == num:
31
- print("おめでとうございます、正解です")
32
- break
33
35
  else:
34
36
  print("答えより小さいです、もう一度当ててみましょう!\n")
35
37
  count += 1
36
- print("チャレンジ回数{}、次っとがんばりましょう".format(count))
38
+ print("チャレンジ回数{}、次もがんばってください。".format(count))
37
39
  print("もう一度遊びますか?y/n")
38
- b = input()
40
+ b = ""
39
- while (b != "y") & (b != "n"):
41
+ while b != "y" and b != "n":
40
- print("y(yes)かn(no)を入力してください\n")
42
+ print("y(yes)かn(no)を入力してください\n")
41
43
  b = input()
42
- if b == "n":
44
+ if b == "y":
45
+ print("\n" * 100)
46
+ continue
47
+ else:
43
48
  break
44
49
 
45
50
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
46
51
 
47
52
 
48
-
49
53
  ```
50
54
 
51
55
 

3

チャレンジ回数カウントの間違いの修正

2020/03/15 21:17

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,7 @@
14
14
  flag = "y"
15
15
  while flag == "y":
16
16
  num = random.randint(1,100)
17
- count = 0
17
+ count = 1
18
18
  a = 0
19
19
  print("1~100のランダムな数字を生成しました、正しい数字を当ててください。\n")
20
20
  while a != num:
@@ -35,17 +35,17 @@
35
35
  count += 1
36
36
  print("チャレンジ回数{}、次はもっとがんばりましょう".format(count))
37
37
  print("もう一度遊びますか?y/n")
38
- b = 0
38
+ b = input()
39
39
  while (b != "y") & (b != "n"):
40
+ print("y(yes)かn(no)を入力してください\n")
40
41
  b = input()
41
- print("y(yes)かn(no)を入力してください\n")
42
- continue
43
42
  if b == "n":
44
43
  break
45
44
 
46
45
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
47
46
 
48
47
 
48
+
49
49
  ```
50
50
 
51
51
 

2

while a > 100 | a < 0 の()のつけ忘れとその後の再度input要請を修正しました

2020/03/15 20:24

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -20,13 +20,15 @@
20
20
  while a != num:
21
21
  a = input("回答:")
22
22
  a = int(a)
23
- while a > 100 | a < 0:
23
+ while (a > 100) | (a < 0):
24
24
  print("0以上100以下の数字を入力してください\n")
25
+ a = input("回答:")
26
+ a = int(a)
25
27
  continue
26
28
  if a > num:
27
29
  print("答えより大きいです、もう一度当ててみましょう!\n")
28
30
  elif a == num:
29
- print("おめでとうございます、正解です\n")
31
+ print("おめでとうございます、正解です")
30
32
  break
31
33
  else:
32
34
  print("答えより小さいです、もう一度当ててみましょう!\n")
@@ -43,6 +45,7 @@
43
45
 
44
46
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
45
47
 
48
+
46
49
  ```
47
50
 
48
51
 

1

ソースコードの貼り付け方を間違えましたので、更新しました。

2020/03/15 20:10

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,7 @@
8
8
 
9
9
  ### 該当のソースコード
10
10
 
11
+ ```python
11
12
  import random
12
13
 
13
14
  flag = "y"
@@ -25,7 +26,7 @@
25
26
  if a > num:
26
27
  print("答えより大きいです、もう一度当ててみましょう!\n")
27
28
  elif a == num:
28
- print("おめでとうございます、正解です")
29
+ print("おめでとうございます、正解です\n")
29
30
  break
30
31
  else:
31
32
  print("答えより小さいです、もう一度当ててみましょう!\n")
@@ -42,6 +43,7 @@
42
43
 
43
44
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
44
45
 
46
+ ```
45
47
 
46
48
 
47
49
  ### 試したこと