Python 代码的改进

Python 代码的改进,python,python-3.x,Python,Python 3.x,输入一个只有两位数字的数字:10 输入另一个整数:1 1是10的倒数 我的代码 from pcinput import getInteger minimum_len = 2 number1 = getInteger("enter a number with only two digits: ") input_length = int(len(str(number1))) if input_length < minimum_len: print("needs to be 2

输入一个只有两位数字的数字:10

输入另一个整数:1

1是10的倒数

我的代码

from pcinput import getInteger


minimum_len = 2
number1 = getInteger("enter a number with only two digits: ")
input_length = int(len(str(number1)))

if input_length < minimum_len: 
    print("needs to be 2 digits" )
    exit(1)
elif not isinstance(number1, int):
    print("needs to be a int")

else: 
     number2 = input("enter another integer: ")

def reverse_int(number1):
    return int(str(number1)[::-1])

if number1 == number2:
    print(str(number1) + " is the reverse of "+ (str(number2 )))
else:
    print(str (number2) + " is not the reverse of " + (str(number1)))
从pcinput导入getInteger
最小长度=2
number1=getInteger(“输入一个只有两位数的数字:”)
输入长度=int(len(str(number1)))
如果输入长度<最小长度:
打印(“需要2位数字”)
出口(1)
elif不存在(数字1,整数):
打印(“需要是整数”)
其他:
number2=输入(“输入另一个整数:”)
def倒档(1号):
返回int(str(number1)[:-1])
如果number1==number2:
print(str(number1)+”是“+(str(number2))的反面)
其他:
print(str(number2)+”不是“+(str(number1))的反面)

您不能在任何地方调用
反向输入功能

- if number1 == number2:
+ if number1 == reverse_int(number2):

您不能在任何地方调用
reverse\u int
函数

- if number1 == number2:
+ if number1 == reverse_int(number2):

据我所知,如果你倒10,你会得到01。在编程中,01不是一个数字,所以这个数字等于1。如果我是你,我也会验证数字的长度。

据我所知,如果你反转10,你会得到01。在编程中,01不是一个数字,所以这个数字等于1。如果我是你,我也会验证数字的长度。

您可以检查数字的值,而不是将数字转换为字符串并查找其长度。10是最小的两位数,99是最大的两位数

在反转数字时,同样可以避免使用字符串:

def reverse(number):
    tens = number // 10
    ones = number % 10
    return 10 * ones + tens
然后,您需要做的就是反转其中一个数字:

if number2 == reverse(number1):
    print("{0} is the reverse of {1}".format(number2, number1))

您可以检查数字的值,而不是将数字转换为字符串并查找其长度。10是最小的两位数,99是最大的两位数

在反转数字时,同样可以避免使用字符串:

def reverse(number):
    tens = number // 10
    ones = number % 10
    return 10 * ones + tens
然后,您需要做的就是反转其中一个数字:

if number2 == reverse(number1):
    print("{0} is the reverse of {1}".format(number2, number1))

在最小长度要求起作用的任何地方,您都不能调用您的
reverse\u int
。但如果不满足要求,您需要使用
exit(1)
退出程序,以避免出现以下错误。“第一个数字必须少于两位数”您确定吗?你不想让第一个数字正好有两个数字吗?你不能在任何最小长度要求有效的地方调用你的
reverse\u int
。但如果不满足要求,您需要使用
exit(1)
退出程序,以避免出现以下错误。“第一个数字必须少于两位数”您确定吗?你不想让第一个数字正好有两个数字吗?哇,谢谢你,我看我的代码太久了,我错过了一个很容易的错误。哇,谢谢,我已经看了太久的代码了,我错过了一个很容易犯的错误。我注意到,如果我输入一个像4这样的数字,它返回40,这使得if-then-else语句产生了错误的答案,因为4是4@spacedmonkey1的倒数,如果1是10的倒数,那么4是40的倒数。这就是为什么第一个数字必须有两个数字,以及为什么我要反转这个数字。我注意到,如果我输入一个像4这样的数字,它返回40,这使得if-then-else语句产生错误的答案,因为4是4@spacedmonkey1的倒数,如果1是10的倒数,那么4是40的倒数。这就是为什么第一个数字必须有两位数字,为什么我要反转这个数字。