第8類:字串(String)的運作

TQC+ 程式語言Python 808 社會安全碼

題目說明:

請撰寫一程式,提示使用者輸入一個社會安全碼SSN,格式為ddd-dd-dddd,d表示數字。若格式完全符合(正確的SSN)則顯示【Valid SSN】,否則顯示【Invalid SSN】。

範例輸入1

329-48-4977

範例輸出1

Valid SSN

範例輸入2

837-a3-3000

範例輸出2

Invalid SSN
 

程式碼:

Str = input()
List = Str.split('-')

for i in List:
    if not i.isdigit():
        print('Invalid SSN')
        break
else:
    print('Valid SSN')

TQC+ 程式語言Python 第8類:字串(String)的運作





如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

2 則留言

  • Jason

    不好意思,這樣好像是錯的,我有寫一個可以參考一下:
    a=input()
    b=[]
    c=[0,1,2,4,5,7,8,9,10]
    for i in range(10):
    try:
    if i == 3 or i == 6 and a[i]==’-‘:
    b.append(True)

    elif a[i].isdigit() and i in c:
    b.append(True)
    except:
    pass

    if b.count(True)==10:
    print(‘Valid SSN’)
    else:
    print(‘Invalid SSN’)

    • JamesBang

      同學你好,不錯的寫法,有點土法煉鋼,不過你這樣寫的話,會少判斷到最後一碼,你可以試著輸入「329-48-497a」,答案就會錯了!把範圍改成到 11 即可

      我的寫法是先用 split(‘-‘) 方法,把輸入的字串拆成三個資料給變數 List,這樣我的 List 就有三筆資料,然後只要再判斷這三筆是不是都是數字,就可以算出答案了!

      這題我去年在測驗平台(忘了是哪個平台) Run 的時候是顯示正確的,現在是不是會判斷成錯誤不清楚?

      我剛剛從這裡把程式碼複製到 Spyder 時,這個符號 –> 「’」會出錯,要重打一次,改完後再執行就可以正常顯示了!

      有任何問題歡迎再留言討論!謝謝

Jason 發表迴響取消回覆