簡體   English   中英

Python - 將 9 位數字 integer 轉換為格式為“xxx-xx-xxxx”的字符串

[英]Python - Converting a 9 digit integer into a string with the format of "xxx-xx-xxxx"

我正在為我所在的 python 課程做一些練習題,但我對其中一個問題有點迷茫。 任務看起來相對簡單:

創建一個接受 integer 輸入的解決方案,該輸入表示 9 位未格式化的學生標識號。 Output 作為不帶空格的字符串的標識號。 解決方案的格式應為:111-22-3333。 因此,如果輸入為“154175430”,則預期的 output 為“154-17-5430”。

這看起來很簡單,但是一旦我查看了他們給我們啟動程序的初始編碼注釋,注釋的第一行是:

# hint: modulo (%) and floored division(//) may be used

這個提示真的讓我絆倒了。 我只是想知道如果您只是將 integer 轉換為字符串,您將如何或為什么使用模除法或底除法? 我認為它與格式有關才能在必要的數字之間獲得“-”?

我們可以嘗試使用樓層划分和模數路線:

num = 154175430
output = str(num / 1000000) + "-" + str((num / 10000) % 100) + "-" + str(num % 10000)
print(output)  # 154-17-5430

我們也可以偷懶並使用正則表達式替換:

num = 154175430
output = re.sub(r'(\d{3})(\d{2})(\d{4})', r'\1-\2-\3', str(num))
print(output)  # 154-17-5430

我假設需要一個與此類似的答案:

def int2student_id(in_val:int):
    start = in_val//1000000
    middle = in_val//10000%100
    end = in_val%10000
    return str(start) + '-' + str(middle) + '-' + str(end)

print(int2student_id(154175430))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM