質問編集履歴

1

白紙化

2022/12/18 00:00

投稿

maaaaaaaaaa
maaaaaaaaaa

スコア0

test CHANGED
@@ -1 +1 @@
1
- 席替えプログラムを短く修正してほしいです。
1
+ 投稿者により白紙化された記事
test CHANGED
@@ -1,70 +1,2 @@
1
- ### 前提
2
- 私は先生で、Pythonで席替えシステムを作っています。
3
- も長コードになった、短縮したいです
1
+ やっほしことだけを記載した丸投げの質問だったため、投稿者自身白紙化ました。
4
2
 
5
- ### 実現したいこと
6
-
7
- 関数などを使って、同じ動作のコードを短くする。
8
-
9
-
10
- ### 該当のソースコード
11
-
12
- ```python
13
- import random
14
- import time
15
- boys = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s"]
16
- girls = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","松p","q","r","s","t"]
17
- f_b = input("前列に設定したい男子生徒の苗字を、半角スペース区切りで入力してください。(いない場合はそのままEnter) >>").split(" ")
18
- f_g = input("前列に設定したい女子生徒の苗字を、半角スペース区切りで入力してください。(いない場合はそのままEnter) >>").split(" ")
19
- tentative_b = 0
20
- tentative_g = 0
21
- random.shuffle(boys)
22
- random.shuffle(girls)
23
- random.shuffle(f_b)
24
- random.shuffle(f_g)
25
- if f_b[0] != "":
26
- for i in range(len(f_b)):
27
- s = boys.index(f_b[i])
28
- boys[i], boys[s] = boys[s], boys[i]
29
- if f_g[0] != "":
30
- for i in range(len(f_g)):
31
- s = girls.index(f_g[i])
32
- girls[i], girls[s] = girls[s], girls[i]
33
- for i in range(7):
34
- a = []
35
- if i <= 4:
36
- for j in range(6):
37
- if j % 2 == 0:
38
- a.append(boys[tentative_b])
39
- tentative_b += 1
40
- else:
41
- a.append(girls[tentative_g])
42
- tentative_g += 1
43
- elif i == 5:
44
- for j in range(5):
45
- if j <= 3:
46
- if j % 2 == 0:
47
- a.append(boys[tentative_b])
48
- tentative_b += 1
49
- else:
50
- a.append(girls[tentative_g])
51
- tentative_g += 1
52
- else:
53
- a.extend([" ", girls[tentative_g]])
54
- else:
55
- for j in range(4):
56
- if j % 2 == 0:
57
- a.append(boys[tentative_b])
58
- tentative_b += 1
59
- else:
60
- a.append(girls[tentative_g])
61
- tentative_g += 1
62
- print(a)
63
- time.sleep(0.5)
64
- ```
65
-
66
- ### 試したこと
67
- def関数を作ってやってみましたが、
68
- UnboundLocalError: local variable 'b' referenced before assignmentと出てしまいます。
69
-
70
-