簡體   English   中英

如何編寫代碼以獲取 6 位 integer 號碼的用戶輸入並檢查該號碼是否為回文?

[英]How to write a code to get a user input for a 6 digit integer number and check if the number is palindrome?

編寫一個 python 程序,要求用戶輸入一個 6 位的 integer 並檢查輸入是否為回文。 如果用戶未能輸入 integer 或 integer 小於 6 位,則必須要求用戶重新輸入。 (注意:編寫代碼時不應使用 TRY 和 EXCEPT,並且不應允許用戶嘗試超過 3 次。)

我對此的看法是:

for n in range(3):
    while True:
        i = input("Please enter a six digit integer:")
        if i.isnumeric():
            if len(i)==6:
                i_integer = int(i)
                print("Your number is:",i_integer,"and the data type is:",type(i_integer))
        break
    else:
        print("Enter value is not numeric") 

使用此代碼,如果我輸入一個六位數字,那么我必須輸入 3 次,而不是 1 次。 下面是 output。

Please enter a six digit integer:123456
Your number is: 123456 and the data type is: <class 'int'>
Please enter a six digit integer:123456
Your number is: 123456 and the data type is: <class 'int'>
Please enter a six digit integer:123456
Your number is: 123456 and the data type is: <class 'int'>

有沒有更好的方法可以在不使用 TRY 和 EXCEPT 的情況下做到這一點?

您可以使用計數器和“while”循環來代替“for”循環,如下面的代碼片段。

tries = 0

while True:
    i = input("Please enter a six digit integer:")
    if i.isnumeric() and len(i) == 6:
        i_integer = int(i)
        print("Your number is:",i_integer,"and the data type is:",type(i_integer))
        break
    else:
        tries += 1
        if tries >= 3:
            break
            
if tries >= 3:
    print("Sorry - too many tries to enter a six digit integer")
    quit()
        
# Palindrome testing would start here
print("Going to see if this is a palindrome")

對此進行測試,我的終端上顯示了以下 output。

@Una:~/Python_Programs/Palindrome$ python3 Numeric.py 
Please enter a six digit integer:12345
Please enter a six digit integer:123456
Your number is: 123456 and the data type is: <class 'int'>
Going to see if this is a palindrome

我將把它留給你來構建測試,看看輸入的數字是否是回文。

試試看。

tries = 0

while True:
    i = input("Please enter a six digit integer:")
    if i.isnumeric() and len(i) == 6:
        i_integer = int(i)
        print("Your number is:",i_integer,"and the data type is:",type(i_integer))

        # Palindrome testing would start here
        print("Going to see if this is a palindrome")

        n=int(i)
        temp=n
        rev=0
        while(n>0):
            dig=n%10
            rev=rev*10+dig
            n=n//10
        if(temp==rev):
            print("The number is a palindrome!")
        else:
            print("The number isn't a palindrome!")        
        break

    else:
        tries += 1
        if tries >= 3:
            break

if tries >= 3:
    print("Sorry - too many tries to enter a six digit integer")

暫無
暫無

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

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