Python練習題 005:三個數字由大到小排序輸出


【Python練習題 005】輸入三個整數x,y,z,請把這三個數由小到大輸出。

-----------------------------------------------------------------------

這題想想應該比較容易:無非是先獲取3個數字,然后比大小,按順序輸出即可。不過在寫代碼的過程中遇到了個難題:因為擔心輸入時輸入非指定的分隔符,需要指定多個分隔符(英文逗號、中文逗號、空格),但 str.split() 只接受1個分隔符

上網搜索了下,發現可以用正則表達式解決這個問題,於是就有了 import re 這一行了。代碼如下:

import re

x, y, z = re.split(',| |,|  ', input('請輸入3個數字,用逗號或空格隔開:'))
x, y, z = int(x), int(y), int(z)

maxNo = max(x, y, z)
minNo = min(x, y, z)
print(maxNo, x+y+z-maxNo-minNo, minNo)

  

早就知道正則表達式很強大,但因為太難了,一直沒敢碰啊…… 日后一定得好好研究下這部分內容!

 

【2016-10-14 更新】------------------------------------------------------------

坐地鐵,手機里讀了篇文章,看到了 str.sort() 這個方法,覺得可以用來解這題。思路是:用 re.split() 得到 3 個字符型數字的列表,把字符轉換為數字,排下序,然后 print() 不就都解決了嗎?代碼如下:

import re

lst = re.split(',| |,|  ', input('請輸入3個數字,用逗號或空格隔開:'))
for i in range(len(lst)):
    lst[i] = int(lst[i])
lst.sort()
print(lst)

果然簡單很多啊~~~

 

++++++++++++++++++++++++++++++++++++++

題目出處:編程語言入門經典100例【Python版】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM