每日一題10009-反轉數字

非著名奶茶愛好者發表於2021-01-03

1.題目詳情

給定一個整數,請將該數各個位上數字反轉得到一個新數。新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零(參見樣例2)。
在這裡插入圖片描述

2.解題思路

1. python中如何實現反轉?
2. 正數和負數有什麼區別?
3. 如何避免0098這種最高位數為零情況出現?

3.程式碼實現

import  math
number=(input())
if number.isdigit() and int(number)>=0: #isdigit() 方法檢測字串是否只由數字組成。
    number_new=number[::-1] #反轉
    number_result=int(number_new.lstrip("0")) #lstrip() 方法用於截掉字串左邊的空格或指定字元,即截掉0
else:
    # 負數的情況,首先轉為正數:
    # 把負號去掉
    # number=number[1:]
    # print("fushu:",number)
    # number_new=-int(number[::-1])#這種寫法也可以
    number_result =-int((number[1:][::-1]).lstrip("0"))

print(number_result)

4.知識點

  1. 反轉有兩種方式:
    使用python中列表裡的reverse()方法,實現反轉,注意是列表;
    python中列表,字串,元組都可以用[::-1]實現反轉
  2. n.isdigit()判斷是否是數字
  3. n.istrip()可擷取掉字串左邊的想要擷取的東西
  4. 從列表的[1:]開始就可以去掉不好處理的負號了

相關文章