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

質問編集履歴

3

該当のソースコードの変更

2018/09/10 21:24

投稿

hello0130
hello0130

スコア6

title CHANGED
File without changes
body CHANGED
@@ -69,22 +69,49 @@
69
69
  ### 該当のソースコード
70
70
 
71
71
  ```python3
72
- # 元の処理
73
- with open(path, encoding='utf-8') as f:
72
+ # 1: 大吉、2: 吉、3: 中吉、4: 小吉、5: 凶、6:大凶
74
- for row in f:
73
+ import random
75
- if 'good' in path: good_list.append(row)
76
- if 'bad' in path: bad_list.append(row)
74
+ from flask import Flask, render_template, request
77
75
 
76
+ app = Flask(__name__)
77
+
78
+ GOOD_FILE = 'input/fortune_good.txt'
79
+ BAD_FILE = 'input/fortune_bad.txt'
80
+
81
+
82
+ @app.route("/")
78
- # リスト内法表記
83
+ def index():
84
+ good_list = []
85
+ bad_list = []
86
+ for path in [GOOD_FILE, BAD_FILE]:
79
- with open(path, encoding='utf-8') as f:
87
+ with open(path, encoding='utf-8') as f:
88
+ #うまく動く
89
+ for row in f:
80
- good_list = [row for row in f if 'good' in path]
90
+ if 'good' in path: good_list.append(row)
81
- bad_list = [row for row in f if 'bad' in path]
91
+ if 'bad' in path: bad_list.append(row)
82
92
 
83
- # 高階関数
84
- with open(path, encoding='utf-8') as f:
85
- fortune_list = f.readlines()
93
+ #fortune_list = list(f)
94
+
95
+ #リスト内法表記 エラー発生
96
+ #good_list = [row for row in fortune_list if 'good' in path]
97
+ #bad_list = [row for row in fortune_list if 'bad' in path]
98
+
99
+ #高階関数へ書き換え エラー発生
86
- good_list = list(filter(lambda x: 'good' in path, fortune_list))
100
+ #good_list = list(filter(lambda x: 'good' in path, fortune_list))
87
- bad_list = list(filter(lambda x: 'bad' in path, fortune_list))
101
+ #bad_list = list(filter(lambda x: 'bad' in path, fortune_list))
102
+
103
+ #うまく動く
104
+ #good_list.extend([row for row in fortune_list if 'good' in path])
105
+ #bad_list.extend([row for row in fortune_list if 'bad' in path])
106
+ fortune = {}
107
+ if request.args.get('fortune', ''):
108
+ fortune['no'] = random.randint(1, 6)
109
+ if fortune['no'] <= 4:
110
+ fortune['message'] = random.choice(good_list)
111
+ if fortune['no'] >= 5:
112
+ fortune['message'] = random.choice(bad_list)
113
+ return render_template('index.html', fortune=fortune)
114
+
88
115
  ```
89
116
 
90
117
  ### 試したこと

2

エラーコードの追記

2018/09/10 21:23

投稿

hello0130
hello0130

スコア6

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,57 @@
13
13
  ### 発生している問題・エラーメッセージ
14
14
 
15
15
  ```
16
+ Traceback (most recent call last)
17
+
18
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 2309, in __call__
19
+
20
+ return self.wsgi_app(environ, start_response)
21
+
22
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 2295, in wsgi_app
23
+
24
+ response = self.handle_exception(e)
25
+
26
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 1741, in handle_exception
27
+
28
+ reraise(exc_type, exc_value, tb)
29
+
30
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
31
+
32
+ raise value
33
+
34
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
35
+
36
+ response = self.full_dispatch_request()
37
+
38
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
39
+
40
+ rv = self.handle_user_exception(e)
41
+
42
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
43
+
44
+ reraise(exc_type, exc_value, tb)
45
+
46
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
47
+
48
+ raise value
49
+
50
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
51
+
52
+ rv = self.dispatch_request()
53
+
54
+ File "/home/appuser/venv/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
55
+
56
+ return self.view_functions[rule.endpoint](**req.view_args)
57
+
58
+ File "/home/appuser/work/main.py", line 32, in index
59
+
60
+ fortune['message'] = random.choice(good_list)
61
+
62
+ File "/usr/lib/python3.6/random.py", line 260, in choice
63
+
64
+ raise IndexError('Cannot choose from an empty sequence') from None
65
+
16
- IndexError: Cannot choose from an empty sequence
66
+ IndexError: Cannot choose from an empty sequence
17
67
  ```
18
68
 
19
69
  ### 該当のソースコード

1

前提の追加

2018/09/07 07:55

投稿

hello0130
hello0130

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ PyQというプログラミング学習サービスで
3
4
  for row in f:
4
5
  if 'good' in path: good_list.append(row)
5
6
  if 'bad' in path: bad_list.append(row)