代码改进

时间:2018-06-15 10:29:58

标签: 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 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)))

3 个答案:

答案 0 :(得分:2)

您无需在任何地方调用reverse_int功能。

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

答案 1 :(得分:1)

根据我的理解,如果你反向10,你将获得01.而在编程01中不是一个数字,所以数字只等于1.如果我是你,我也会验证数字的长度。

答案 2 :(得分:1)

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

反转数字时可以避免使用字符串:

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

然后您需要做的就是撤消其中一个数字:

   u8 Crc(u8 *buffer, u8 length) 
   {
        u8 crc = 0, idx;
        while ( length-- != 0 ) 
        {
            crc = crc ^ *buffer++;
            for ( idx = 0; idx < 8; ++idx ) 
            {
                if ( crc & 0x01 ) crc = (crc >> 1) ^ 0x8C;
                else crc >>= 1;
            }
       }
       return crc;
    }