[問題] 關於while跟break
各位前輩好,小弟第一次在ptt發文,如有排版問題請見諒
關於while and break有點問題
前天期中考考了一題是定義了26個英文字母跟10個數字 5*4的點矩陣
使用者輸入一行英文+數字要印出相對應的點矩陣,
如果是空格則輸出五格空格
我已經做完他的要求了,但我想要加上條件限制
即如果輸入的不是英文與數字,則印出error,並要求重新輸入
如果輸入的是英文與數字的組合,則印出點矩陣,並要求重新輸入
我的問題是我以下程式碼在不是英文與數字的組合的時候無法重新輸入
我應該怎麼修改我的程式?我想了想卡住了= =
是不是跟break的用法有關?
另外一個問題是break的終止迴圈是終止上一個for而已嗎?
例如
for i in range(a):
for j in range(b):
print('yoyo')
break
這個break是把兩個for都跳出還是只有裡面的for ?
(抱歉小弟是第一次學程式語言,還只是個新手 QQ)
感謝大家讀完
第一個問題的程式碼:http://pastebin.com/PvGYN2Ur
cmap = ( (4,10,17,31,17),(30,17,30,17,30),(14,17,16,17,14),(30,17,17,17,30),
(31,16,30,16,31),(31,16,30,16,16),(31,16,19,17,31),(17,17,31,17,17),
(14,4,4,4,14),(7,2,2,10,4),(17,18,28,18,17),(16,16,16,16,31),
(17,27,21,17,17),(17,25,21,19,17),(14,17,17,17,14),(30,17,30,16,16),
(14,17,21,19,15),(30,17,30,18,17),(31,16,31,1,31),(31,4,4,4,4),
(17,17,17,17,14),(17,17,17,10,4),(17,17,21,27,17),(17,10,4,10,17),
(17,10,4,4,4),(31,2,4,8,31) )
nmap =(
(31,17,17,17,31),(4,4,4,4,4),(31,1,31,16,31),(31,1,31,1,31),(17,17,31,1,1),
(31,16,31,1,31),(31,16,31,17,31),(31,2,4,8,8),(31,17,31,17,31),(31,17,31,1,31)
)
while True:
data = str.upper(input('ABC+123:'))
for i in range(len(data)):
if 48<ord(data[i])<90:
print('ok:')
break
else: #<--------------------原文少打的部分
print('error 要怎麼重新輸入Q_Q')
break
#<--------------------原文少打的部分
for i in range(5):
print()
for j in range(len(data)):
print(' ',end="")
for k in range(5):
if 65<=ord(data[j])<=90:
pdata=cmap[ord(data[j])-65][i]
elif 48<=ord(data[j])<=57:
pdata=nmap[ord(data[j])-48][i]
dot=pdata//(2**(4-k))%2
if dot:
print(data[j],end="")
else:
print(' ',end="")
print('\n\n')
後來寫的版本 1用try-except 2用if-else-break
http://codepad.org/7Wq5cVRy
http://codepad.org/APc3zaos
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.189.113
※ 文章網址: http://www.ptt.cc/bbs/Python/M.1400224494.A.0BB.html
推
05/16 15:23, , 1F
05/16 15:23, 1F
→
05/16 15:23, , 2F
05/16 15:23, 2F
推
05/16 15:28, , 3F
05/16 15:28, 3F
→
05/16 16:11, , 4F
05/16 16:11, 4F
→
05/16 16:11, , 5F
05/16 16:11, 5F
→
05/16 16:13, , 6F
05/16 16:13, 6F
→
05/16 16:14, , 7F
05/16 16:14, 7F
→
05/16 16:16, , 8F
05/16 16:16, 8F
→
05/16 16:16, , 9F
05/16 16:16, 9F
※ 編輯: ersfw4418 (114.32.189.113), 05/16/2014 16:20:01
推
05/16 19:58, , 10F
05/16 19:58, 10F
推
05/16 20:21, , 11F
05/16 20:21, 11F
推
05/16 20:28, , 12F
05/16 20:28, 12F
→
05/17 03:18, , 13F
05/17 03:18, 13F
→
05/17 03:19, , 14F
05/17 03:19, 14F
→
05/17 03:20, , 15F
05/17 03:20, 15F
→
05/17 03:21, , 16F
05/17 03:21, 16F
→
05/17 03:22, , 17F
05/17 03:22, 17F
→
05/17 03:23, , 18F
05/17 03:23, 18F
→
05/17 03:23, , 19F
05/17 03:23, 19F
※ 編輯: ersfw4418 (114.32.189.113), 05/17/2014 03:34:21
推
05/17 08:26, , 20F
05/17 08:26, 20F
推
05/17 08:29, , 21F
05/17 08:29, 21F
推
05/17 08:30, , 22F
05/17 08:30, 22F
推
05/17 08:32, , 23F
05/17 08:32, 23F
→
05/17 12:40, , 24F
05/17 12:40, 24F
→
05/17 12:41, , 25F
05/17 12:41, 25F
→
05/17 12:42, , 26F
05/17 12:42, 26F
→
05/17 12:43, , 27F
05/17 12:43, 27F
→
05/17 12:44, , 28F
05/17 12:44, 28F
→
05/17 12:44, , 29F
05/17 12:44, 29F
→
05/17 14:38, , 30F
05/17 14:38, 30F
→
05/17 14:39, , 31F
05/17 14:39, 31F
→
05/17 19:42, , 32F
05/17 19:42, 32F
→
05/17 23:05, , 33F
05/17 23:05, 33F
→
05/17 23:06, , 34F
05/17 23:06, 34F
→
05/17 23:07, , 35F
05/17 23:07, 35F
→
05/17 23:07, , 36F
05/17 23:07, 36F
→
05/17 23:08, , 37F
05/17 23:08, 37F