1. 程式人生 > 其它 >每日一題10009-反轉數字

每日一題10009-反轉數字

技術標籤:每日一題python資料結構字串列表

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.iltrip()可擷取掉字串左邊的想要擷取的東西
  4. 從列表的[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)

自己理解後寫了一遍