質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

620閲覧

変数宣言でsyntaxerrorが生じます

geek.000

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/07/09 10:55

編集2017/07/09 12:39

python3

1コード 2```#!/usr/bin/python3 3# -*- coding: utf-8 -*- 4 5import sys 6import os 7import time 8from PyQt5.QtWidgets import (QWidget, QApplication, QCheckBox, QHBoxLayout,QVBoxLayout, QPushButton, QGridLayout, QLineEdit, QLabel, QMessageBox) 9 10answers = ['NONE' for i in range(6)] 11group_right_or_not = ['×' for i in range(6)] 12group_number = 0 13ANSWER = 'サバイバー' 14 15if os.path.exists('performance{}.txt'.format(sys.argv[1])): 16 f = open('performance{}.txt'.format(sys.argv[1]), 'r') 17 lines = f.readlines() 18 for i in range(6): 19 answers[i] = lines[i][7:-4] 20 else: 21 pass 22 23class Example(QWidget): 24 def __init__(self): 25 super().__init__() 26 self.initUI() 27 self.file() 28 29 30 def initUI(self): 31 numberlabel = QLabel('グループ番号') 32 hbox1 = QHBoxLayout() 33 hbox1.addWidget(numberlabel) 34 hbox1.addStretch(1) 35 36 self.cb1 = QCheckBox('グループ1', self) 37 self.cb2 = QCheckBox('グループ2', self) 38 self.cb3 = QCheckBox('グループ3', self) 39 self.cb4 = QCheckBox('グループ4', self) 40 self.cb5 = QCheckBox('グループ5', self) 41 self.cb6 = QCheckBox('グループ6', self) 42 self.cb1.setChecked(False) 43 self.cb2.setChecked(False) 44 self.cb3.setChecked(False) 45 self.cb3.setChecked(False) 46 self.cb4.setChecked(False) 47 self.cb5.setChecked(False) 48 self.cb6.setChecked(False) 49 50 self.cb1.stateChanged.connect(lambda:self.btnstate(self.cb1)) 51 self.cb2.stateChanged.connect(lambda:self.btnstate(self.cb2)) 52 self.cb3.stateChanged.connect(lambda:self.btnstate(self.cb3)) 53 self.cb4.stateChanged.connect(lambda:self.btnstate(self.cb4)) 54 self.cb5.stateChanged.connect(lambda:self.btnstate(self.cb5)) 55 self.cb6.stateChanged.connect(lambda:self.btnstate(self.cb6)) 56 57 58 59 self.grid = QGridLayout() 60 self.grid.setSpacing(30) 61 62 self.grid.addWidget(self.cb1, 0, 0) 63 self.grid.addWidget(self.cb2, 1, 0) 64 self.grid.addWidget(self.cb3, 2, 0) 65 self.grid.addWidget(self.cb4, 0, 1) 66 self.grid.addWidget(self.cb5, 1, 1) 67 self.grid.addWidget(self.cb6, 2, 1) 68 69 self.passlabel = QLabel('パスワード') 70 self.self.self.hbox2 = QHBoxLayout() 71 self.self.hbox2.addWidget(passlabel) 72 self.hbox2.addStretch(1) 73 74 self.passinput = QLineEdit() 75 self.hbox3 = QHBoxLayout() 76 self.hbox3.addStretch(1) 77 self.hbox3.addWidget(passinput) 78 self.hbox3.addStretch(1) 79 80 self.okbutton = QPushButton('OK') 81 self.okbutton.clicked.connect(lambda: buttonClicked(group_number, passinput) 82 self.hbox4 = QHBoxLayout() 83 self.hbox4.addStretch(1) 84 self.hbox4.addWidget(okbutton) 85 86 self.self.vbox = QVBoxLayout() 87 self.vbox.addStretch(1) 88 self.vbox.addLayout(hbox1) 89 self.vbox.addLayout(grid) 90 self.vbox.addLayout(hbox2) 91 self.vbox.addLayout(hbox3) 92 self.vbox.addWidget(okbutton) 93 self.vbox.addLayout(hbox4) 94 self.vbox.addStretch(1) 95 96 self.setLayout(vbox) 97 98 self.showFullScreen() 99 100 def btnstate(self, cb): 101 if cb.text() == 'グループ1': 102 if cb.isChecked() == True: 103 self.cb2.setChecked(False) 104 self.cb3.setChecked(False) 105 self.cb4.setChecked(False) 106 self.cb5.setChecked(False) 107 self.cb6.setChecked(False) 108 group_number = 1 109 110 else: 111 group_number = None 112 113 if cb.text() == 'グループ2': 114 if cb.isChecked() == True: 115 self.cb1.setChecked(False) 116 self.cb3.setChecked(False) 117 self.cb4.setChecked(False) 118 self.cb5.setChecked(False) 119 self.cb6.setChecked(False) 120 group_number = 2 121 122 else: 123 group_number = None 124 125 if cb.text() == 'グループ3': 126 if cb.isChecked() == True: 127 self.cb1.setChecked(False) 128 self.cb2.setChecked(False) 129 self.cb4.setChecked(False) 130 self.cb5.setChecked(False) 131 self.cb6.setChecked(False) 132 group_number = 3 133 134 else: 135 group_number = None 136 137 if cb.text() == 'グループ4': 138 if cb.isChecked() == True: 139 self.cb1.setChecked(False) 140 self.cb2.setChecked(False) 141 self.cb3.setChecked(False) 142 self.cb5.setChecked(False) 143 self.cb6.setChecked(False) 144 group_number = 4 145 146 else: 147 group_number = None 148 149 if cb.text() == 'グループ5': 150 if cb.isChecked() == True: 151 self.cb1.setChecked(False) 152 self.cb2.setChecked(False) 153 self.cb3.setChecked(False) 154 self.cb4.setChecked(False) 155 self.cb6.setChecked(False) 156 group_number = 5 157 158 else: 159 group_number = 5 160 161 if cb.text() == 'グループ6': 162 if cb.isChecked() == True: 163 self.cb1.setChecked(False) 164 self.cb2.setChecked(False) 165 self.cb3.setChecked(False) 166 self.cb4.setChecked(False) 167 self.cb5.setChecked(False) 168 group_number = 6 169 170 else: 171 group_number = None 172 173 174 def buttonClicked(self, group_number, passinput): 175 global group_number 176 answers[group_number - 1] = passinput.text() 177 self.showDialog 178 179 self.cb1.setChecked(False) 180 self.cb2.setChecked(False) 181 self.cb3.setChecked(False) 182 self.cb4.setChecked(False) 183 self.cb5.setChecked(False) 184 self.cb6.setChecked(False) 185 group_number = None 186 passinput.clear() 187 188 def showDialog(self): 189 msg = QMessageBox() 190 msg.setText('入力完了。制限時間内であれば何回でも再入力可能です。') 191 ok = msg.addButton('OK', QMessageBox.OK) 192 193 def file(self): 194 for i in range(6): 195 if answers[i] == ANSWER: 196 group_right_or_not[i] = '○' 197 else: 198 pass 199 200 f = open('performance{}.txt'.format(sys.argv[1]), 'w') 201 202 for i in range(6): 203 f.write('group' + str(i + 1) + ':' + answers[i] + '--' + group_right_or_not[i] + '\n') 204 205 206 207if __name__ == '__main__': 208 209 app = QApplication(sys.argv) 210 ex = Example() 211 sys.exit(app.exec_()) 212コード全文とエラー表示です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamy

2017/07/09 12:12

コードはきちんとコードブロック内に書いてください.ただでさえ読みづらいし,インデントが意味を持つ言語なので,インデントなしでエラー原因を特定するのは難しいです.
_Victorique__

2017/07/09 13:18

エラー文を書かないと分からないでしょう。超能力者じゃないんですから
guest

回答1

0

ベストアンサー

エラーの原因はは大きく2つ
1.

Python

1 self.okbutton.clicked.connect(lambda: buttonClicked(group_number, passinput)

の部分(エラーが起きている行の1つ前の行)にて、括弧の数があってません(閉じ括弧が1つ少ない)

2.

Python

1 def buttonClicked(self, group_number, passinput): 2 global group_number

の部分にて、引数でgroup_numberがあるにも関わらず、同名の group_numberを global宣言している

引数名を修正するべきかと思います

とりあえず以上です。

投稿2017/07/12 23:20

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

geek.000

2017/08/07 13:51

返答遅くなってすいません。おかげさまで解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問