Python 板


LINE

各位前輩好,小弟第一次在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://webptt.com/m.aspx?n=bbs/Python/M.1400224494.A.0BB.html
1F:推 tiefblau:break是終止一層,沒看到你error印在哪,單看敘述的話 05/16 15:23
2F:→ tiefblau:你學過continue這個用法嗎、 05/16 15:23
3F:推 tiefblau:btw python 有 isdigit(),isalpha()可用 05/16 15:28
4F:→ ersfw4418:抱歉 我是印在while下第一個for 裡面else裡 05/16 16:11
5F:→ ersfw4418:網址裡的是原本打的 05/16 16:11
6F:→ ersfw4418:可是如果是a='a1'這樣 a.isalpha就會判定False 05/16 16:13
7F:→ ersfw4418:不過我是英文跟數字都可以 而其他像是~!@#$等等的不行 05/16 16:14
8F:→ ersfw4418:不過isdigit()跟isalpha()跟我設定ord()範圍在數字到英 05/16 16:16
9F:→ ersfw4418:文這樣不行嗎?? 05/16 16:16
※ 編輯: ersfw4418 (114.32.189.113), 05/16/2014 16:20:01
10F:推 Microscft:例外的處理 怎麼不用try except? 05/16 19:58
11F:推 funnypeter:將輸入list化再分析 05/16 20:21
12F:推 funnypeter:黏在一起無法判斷,變list把它們分開,再判斷 05/16 20:28
13F:→ ersfw4418:我後來查了try except的用法,分別用有else跟沒else 05/17 03:18
14F:→ ersfw4418:各試了一次 有得出成功的結果了:) 另外得出錯誤跳出後 05/17 03:19
15F:→ ersfw4418:再檢查一次的方法也成功了 感謝大大的回答 05/17 03:20
16F:→ ersfw4418:@fun大大 是list有什麼方法可以檢查是否為數字跟英文嗎 05/17 03:21
17F:→ ersfw4418:不然我用字串的編碼[]去跑迴圈測試是否為數字與英文是否 05/17 03:22
18F:→ ersfw4418:會比較慢 不過這樣也能判斷不是嗎? 05/17 03:23
19F:→ ersfw4418:還是我誤會您的意思了? 05/17 03:23
※ 編輯: ersfw4418 (114.32.189.113), 05/17/2014 03:34:21
20F:推 funnypeter:喔,都可以阿,你的寫法是比較不pythonic 05/17 08:26
21F:推 funnypeter:我是給另外一個方式來判斷,程式運作有很多種寫法 05/17 08:29
22F:推 funnypeter:data=list(data);for I in data; 05/17 08:30
23F:推 funnypeter:if I.isdigit() or I.isalpha():......else: ..... 05/17 08:32
24F:→ ersfw4418:前面大大有說到isdigit(),isalpha()可以判斷 05/17 12:40
25F:→ ersfw4418:哦 您的意思是一開始就list而不是str就可以個別判斷了 05/17 12:41
26F:→ ersfw4418:pythonic的意思是盡量使用python已有的代碼嗎? 05/17 12:42
27F:→ ersfw4418:因為教授教的時候就說是想教程式設計而不是針對python 05/17 12:43
28F:→ ersfw4418:可能就是這樣我才會不知道很多指令的用法吧Q_Q 05/17 12:44
29F:→ ersfw4418:我是個人對python特別有興趣才去的 05/17 12:44
31F:→ uranusjr:Being Pythonic is not a skill; it's style. 05/17 14:39
32F:→ Microscft:如果不是要開發大型的專案 其實也不用鳥什麼style 05/17 19:42
33F:→ ersfw4418:感謝感謝 其實我現在大學所學的不太會用到程式語言 05/17 23:05
34F:→ ersfw4418:大概就是導入數據跟計算一些東西跟繪圖 05/17 23:06
35F:→ ersfw4418:所以我想學好基本再看看能不能把scipy numpy matplotlib 05/17 23:07
36F:→ ersfw4418:學起來 05/17 23:07
37F:→ ersfw4418:(其實只是硬要把現在學的跟python扯上關係=_=) 05/17 23:08







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP