每日一題10009-反轉數字
阿新 • • 發佈:2021-01-09
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.知識點
- 反轉有兩種方式:
使用python中列表裡的reverse()方法,實現反轉,注意是列表;
python中列表,字串,元組都可以用[::-1]實現反轉 - n.isdigit()判斷是否是數字
- n.iltrip()可擷取掉字串左邊的想要擷取的東西
- 從列表的[1:]開始就可以去掉不好處理的負號了
n = input()
if int(n) < 0:
n = n[1:] #去掉負號
m = str(n[::-1]) #反轉並轉換成字串
m = -int(m.lstrip( '0')) #字串前提下用lstrip去掉首位0
else:
m = n[::-1]
m = int(m.lstrip('0'))
print(m)
自己理解後寫了一遍