本文仅供学习清华大学出版社所出数目《Python编程300例》使用,如有侵权,请联系本人删除。
1、问题描述
反转一个只有3位数的整数
2、问题示例
输入number=123,输出321;输入number=900,输出=9。
3、代码实现
class Solution:
#参数number:一个3位整数
#返回值:反转后的数字
def reverseInteger(self,number):
h = int(number/100)
t = int(number%100/10)
z = int(number%10)
return (100*z+10*t+h)
class Solution2:
#使用字符串反转法完成
def reverseInteger(self,str):
str1 = ''
str1 = str1.join(reversed(str))
if str1[0] == '0' and str1[1] != '0':
str1 = str1[1:]
# str1 = str1[1:2]实际使用中是左闭右开区间,实际上是截取了索引位为1的字符,
# 使用str1 = str1[1:]在此实例中与str1 = str1[1:3]效果等同
elif str1[0] == '0' and str1[1] == '0':
str1 = str1[2]
return str1
#主函数
if __name__ == '__main__':
# solution = Solution()
# while True:
# str_num = input("输入一个三位整数:")
# if len(str_num) == 3 :
# ans = solution.reverseInteger(int(str_num))
# print("输出:",ans)
# break
# else:
# print("Error,请重新输入一个三位整数")
solution_str = Solution2()
while True:
str_num = input("输入一个三位整数:")
if len(str_num) == 3 :
ans = solution_str.reverseInteger(str_num)
print("输出:",ans)
break
else:
print("Error,请重新输入一个三位整数")
4、总结
此实例中要求900反转后为9,如果使用字符串直接反转则需要判断前两位字符串不为0,
否则反转后会出现009现象,下面提出如下思考,如果使用字符串反转方法,将使用
方法二完成。