看板 Python 關於我們 聯絡資訊
各位 python高手大家好: 我是py新手,用以下的例子練習函數。目前執行都正確,但遇到負數的時候就 會出錯,例如當我輸入-15 跟 -55比大小,正確答案是 -15 > -55,但是程式 會輸出 -55,請問當遇到負號時,程式要怎麼修改才正確> < def big(a, b): if a>b: return a else: return b a=input("請輸入符號a:") b=input("請輸入符號b:") print("印出大的符號:",big(a,b)) print() -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.163.242
darkgerm:a = int(input("請輸入符號a:")) # b 也一樣 01/12 00:28
mikapauli:你這是在比string的hash value 01/12 00:29
yukiko:哇 正確了...非常感謝兩位高手^^/ 01/12 00:32
yukiko:不過這樣輸入 abc 跟def 就不能比大小,所以要加if條件囉? 01/12 00:34
darkgerm:回二樓,string compare 是用字典序~ 01/12 00:34
yukiko:python寫起來好舒服>< 比C跟Java可愛多了~ 01/12 00:35
darkgerm:你要先決定,你想比的是 "字串" 還是 "數字" 01/12 00:36
yukiko:~練習寫if 判斷輸入字串還是數字再比較 (給自己找題目練)^^ 01/12 00:40
uranusjr:這程式在 Python 2 就會對了 :p 01/12 00:42
yukiko:我用py333 01/12 00:45
yukiko:用isdigit()來偵測輸入值 數字沒問題 負數居然false ..暈 01/12 01:24
darkgerm:負號不是數字啊XD 判斷是否為數字可以用 int() 直接轉 01/12 01:45
darkgerm:再用 try except 去接 ValueError 01/12 01:46
darkgerm: http://goo.gl/GARY7 01/12 01:46
darkgerm:python2 會對是因為 py2 的 input 是 eval(input()) 01/12 01:49
darkgerm:因為直接輸入丟 eval() 有危險,所以 py3 移掉了 01/12 01:50