質問編集履歴

6

関数ask_numberの変更

2020/03/16 15:42

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,11 @@
36
36
 
37
37
  def ask_number():
38
38
 
39
- n = 0
39
+ while True:
40
40
 
41
- s = input("回答:")
41
+ n = 0
42
42
 
43
- while True:
43
+ s = input("回答:")
44
44
 
45
45
  if s.isdigit():
46
46
 
@@ -48,13 +48,11 @@
48
48
 
49
49
  if VAL_MIN <= n <= VAL_MAX:
50
50
 
51
- break
51
+ return n
52
+
53
+
52
54
 
53
55
  print("{}以上{}以下の整数を入力してください\n".format(VAL_MIN, VAL_MAX))
54
-
55
- return ask_number()
56
-
57
- return n
58
56
 
59
57
 
60
58
 
@@ -150,8 +148,6 @@
150
148
 
151
149
  game()
152
150
 
153
-
154
-
155
151
  ```
156
152
 
157
153
 

5

関数ask_numberの変更

2020/03/16 15:42

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -22,47 +22,93 @@
22
22
 
23
23
  import random
24
24
 
25
+ # import os
26
+
27
+
28
+
29
+ VAL_MIN = 1
30
+
31
+ VAL_MAX = 100
25
32
 
26
33
 
27
34
 
28
35
 
29
- while True:
30
36
 
31
- num = random.randint(1,100)
37
+ def ask_number():
32
38
 
33
- count = 0
39
+ n = 0
34
40
 
35
- a = ""
41
+ s = input("回答:")
36
42
 
37
- print("1~100のランダムな整数を生成しました、正しい数字を当ててください。\n")
43
+ while True:
38
44
 
39
- while a != num:
45
+ if s.isdigit():
40
46
 
41
- a = input("回答:")
47
+ n = int(s)
42
48
 
43
- if a.isdigit() != True:
49
+ if VAL_MIN <= n <= VAL_MAX:
44
50
 
45
- print("0以上100以下の整数を入力してください\n")
51
+ break
46
52
 
47
- continue
53
+ print("{}以上{}以下の整数を入力してください\n".format(VAL_MIN, VAL_MAX))
48
54
 
49
- a = int(a)
55
+ return ask_number()
50
56
 
51
- if a > 100 or a < 0 or type(a) != int:
57
+ return n
52
58
 
53
- print("0以上100以下の整数を入力してください\n")
54
59
 
55
- continue
56
60
 
61
+
62
+
63
+ def ask_yes_no():
64
+
65
+ print("もう一度遊びますか?y/n")
66
+
67
+ while True:
68
+
69
+ ans = input()
70
+
71
+ if ans in ('y', 'n'):
72
+
73
+ return ans
74
+
75
+
76
+
77
+ print("※y(yes)かn(no)を入力してください!\n")
78
+
79
+
80
+
81
+
82
+
83
+ def play():
84
+
85
+ print("{}~{}のランダムな整数を生成しました、正しい数字を当ててください。\n".format(VAL_MIN, VAL_MAX))
86
+
87
+ num = random.randint(VAL_MIN, VAL_MAX)
88
+
89
+ try_count = 0
90
+
91
+
92
+
93
+ while True:
94
+
95
+ n = ask_number()
96
+
97
+ try_count += 1
98
+
99
+
100
+
57
- if a == num:
101
+ if n == num:
58
102
 
59
103
  print("おめでとうございます、正解です!")
60
104
 
61
- count += 1
105
+ print("チャレンジ回数{}、次もがんばってください。".format(try_count))
62
106
 
63
- break
107
+ return
64
108
 
109
+
110
+
65
- elif a > num:
111
+ if n > num:
66
112
 
67
113
  print("答えより大きいです、もう一度当ててみましょう!\n")
68
114
 
@@ -70,35 +116,39 @@
70
116
 
71
117
  print("答えより小さいです、もう一度当ててみましょう!\n")
72
118
 
73
- count += 1
74
-
75
- print("チャレンジ回数{}、次もがんばってください。".format(count))
76
-
77
- print("もう一度遊びますか?y/n")
78
-
79
- b = ""
80
-
81
- while b != "y" and b != "n":
82
-
83
- print("※y(yes)かn(no)を入力してください!\n")
84
-
85
- b = input()
86
-
87
- if b == "y":
88
-
89
- print("\n" * 100)
90
-
91
- continue
92
-
93
- else:
94
-
95
- break
96
119
 
97
120
 
98
121
 
122
+
123
+ def clear_screen():
124
+
99
- print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
125
+ print("\033[2J") # for ANSI terminal
126
+
127
+ # # os.system('cls') # for windows
100
128
 
101
129
 
130
+
131
+
132
+
133
+ def game():
134
+
135
+ while True:
136
+
137
+ play()
138
+
139
+ if ask_yes_no() == 'n':
140
+
141
+ print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
142
+
143
+ return
144
+
145
+ clear_screen()
146
+
147
+
148
+
149
+
150
+
151
+ game()
102
152
 
103
153
 
104
154
 

4

全体的な修正

2020/03/16 15:35

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -24,43 +24,47 @@
24
24
 
25
25
 
26
26
 
27
- flag = "y"
28
27
 
28
+
29
- while flag == "y":
29
+ while True:
30
30
 
31
31
  num = random.randint(1,100)
32
32
 
33
- count = 1
33
+ count = 0
34
34
 
35
- a = 0
35
+ a = ""
36
36
 
37
- print("1~100のランダムな数を生成しました、正しい数字を当ててください。\n")
37
+ print("1~100のランダムな数を生成しました、正しい数字を当ててください。\n")
38
38
 
39
39
  while a != num:
40
40
 
41
41
  a = input("回答:")
42
42
 
43
- a = int(a)
43
+ if a.isdigit() != True:
44
44
 
45
- while (a > 100) | (a < 0):
46
-
47
- print("0以上100以下の数を入力してください\n")
45
+ print("0以上100以下の数を入力してください\n")
48
-
49
- a = input("回答:")
50
-
51
- a = int(a)
52
46
 
53
47
  continue
54
48
 
49
+ a = int(a)
50
+
51
+ if a > 100 or a < 0 or type(a) != int:
52
+
53
+ print("0以上100以下の整数を入力してください\n")
54
+
55
+ continue
56
+
57
+ if a == num:
58
+
59
+ print("おめでとうございます、正解です!")
60
+
61
+ count += 1
62
+
63
+ break
64
+
55
- if a > num:
65
+ elif a > num:
56
66
 
57
67
  print("答えより大きいです、もう一度当ててみましょう!\n")
58
-
59
- elif a == num:
60
-
61
- print("おめでとうございます、正解です")
62
-
63
- break
64
68
 
65
69
  else:
66
70
 
@@ -68,27 +72,31 @@
68
72
 
69
73
  count += 1
70
74
 
71
- print("チャレンジ回数{}、次っとがんばりましょう".format(count))
75
+ print("チャレンジ回数{}、次もがんばってください。".format(count))
72
76
 
73
77
  print("もう一度遊びますか?y/n")
74
78
 
75
- b = input()
79
+ b = ""
76
80
 
77
- while (b != "y") & (b != "n"):
81
+ while b != "y" and b != "n":
78
82
 
79
- print("y(yes)かn(no)を入力してください\n")
83
+ print("y(yes)かn(no)を入力してください\n")
80
84
 
81
85
  b = input()
82
86
 
83
- if b == "n":
87
+ if b == "y":
88
+
89
+ print("\n" * 100)
90
+
91
+ continue
92
+
93
+ else:
84
94
 
85
95
  break
86
96
 
87
97
 
88
98
 
89
99
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
90
-
91
-
92
100
 
93
101
 
94
102
 

3

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

2020/03/15 21:17

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  num = random.randint(1,100)
32
32
 
33
- count = 0
33
+ count = 1
34
34
 
35
35
  a = 0
36
36
 
@@ -72,15 +72,13 @@
72
72
 
73
73
  print("もう一度遊びますか?y/n")
74
74
 
75
- b = 0
75
+ b = input()
76
76
 
77
77
  while (b != "y") & (b != "n"):
78
78
 
79
- b = input()
80
-
81
79
  print("y(yes)かn(no)を入力してください\n")
82
80
 
83
- continue
81
+ b = input()
84
82
 
85
83
  if b == "n":
86
84
 
@@ -89,6 +87,8 @@
89
87
 
90
88
 
91
89
  print("遊んでいただいてありがとうございました、またのご利用お待ちしております!")
90
+
91
+
92
92
 
93
93
 
94
94
 

2

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

2020/03/15 20:24

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -42,9 +42,13 @@
42
42
 
43
43
  a = int(a)
44
44
 
45
- while a > 100 | a < 0:
45
+ while (a > 100) | (a < 0):
46
46
 
47
47
  print("0以上100以下の数字を入力してください\n")
48
+
49
+ a = input("回答:")
50
+
51
+ a = int(a)
48
52
 
49
53
  continue
50
54
 
@@ -54,7 +58,7 @@
54
58
 
55
59
  elif a == num:
56
60
 
57
- print("おめでとうございます、正解です\n")
61
+ print("おめでとうございます、正解です")
58
62
 
59
63
  break
60
64
 
@@ -88,6 +92,8 @@
88
92
 
89
93
 
90
94
 
95
+
96
+
91
97
  ```
92
98
 
93
99
 

1

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

2020/03/15 20:10

投稿

HIROKIdesuga
HIROKIdesuga

スコア7

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,8 @@
17
17
  ### 該当のソースコード
18
18
 
19
19
 
20
+
21
+ ```python
20
22
 
21
23
  import random
22
24
 
@@ -52,7 +54,7 @@
52
54
 
53
55
  elif a == num:
54
56
 
55
- print("おめでとうございます、正解です")
57
+ print("おめでとうございます、正解です\n")
56
58
 
57
59
  break
58
60
 
@@ -86,6 +88,8 @@
86
88
 
87
89
 
88
90
 
91
+ ```
92
+
89
93
 
90
94
 
91
95