问题描述;
    输入一个非 0 十进制整数(不允许前导0的存在,即不允许类似 0123 这样的输入),将其反转输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输入:一个非 0 十进制整数‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    输出:反转后的数字‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    分析:
    非 0 十进制整数,包括正数,如:123、负数,如:-123。
    特殊情况:当数字尾数为 0 时,例如:12300,反转后为00321,存在前导 0 ,不符合 10进制整数的定义,需将前导 0 处理掉,转为321。

    数学方法:
    1.输入一个整数字符串,将其转为整数,命名为 num
    2.先判断输入是否为负数,当输入为负数时:
    2.1 先输出一个负号“-”
    2.2然后将该数转为对应的正数 abs(num) 或 num = -num

    1. 当该数不为 0 时,循环输出末位数字并去掉末位数字:

      3.1 取该数末位数字(num % 10),判断是否为0:
      3.1.1 若末位数不为 0 则输出,不换行,为 0 时不处理
      3.2 将该数最后一位数字去掉 num = num // 10
      参考实现代码如下:

      1. num = int(input()) # 将输入转为整数
      2. if num < 0: # 如果 num 是负数
      3. num = abs(num) # 返回其绝对值,去掉负号
      4. print('-',end = '') # 先将负号输出,不换行
      5. while num != 0: # num 不为0时循环取末位输出,并去掉末位数字
      6. if num % 10 != 0: # num % 10 结果为num最后一位数字,不为0时输出该数字
      7. print(num % 10,end = '') # 输出末位数字,不换行
      8. num = num // 10 # num 整除10去除最后一位数字

    字符串方法:
    Python 中字符串的应用非常灵活,可以方便的将其逆序、索引、切片和拼接等,下面看如何用字符串的方法实现:

    1. 输入一个字符串,并将其反转得到逆序字符串 input()[-1::-1]
    2. 判断字符串末位是否为‘-’,当末位为‘-’号时:

      2.1 将字符串切掉末位,去除前导 0(strip(‘0’)) ,切下来的末位字符拼接在字符串开头

    3. 输出去除前导 0 的字符串(strip(‘0’))

    1. num = input()[::-1] # 将输入的字符串逆序
    2. if num[-1] == '-': # 若逆序后末位为‘-’
    3. num = num[-1] + num[:-1].strip('0') # 将末位‘-’切下来拼接在字符串开头,strip('0')可去除字符串开头的前导0
    4. print(num.strip('0')) # 输出逆序的数字,当num为正数时,前导0还可能存在,必须用strip('0')消除
    1. num = input()[::-1] # 将输入的字符串逆序
    2. if num[-1] == '-': # 若逆序后末位为‘-’
    3. print(-int(num[:-1])) # 将逆序的字符串转为整数,系统会自动消除前导0
    4. else:
    5. print(int(num)) # 输出逆序的数字

    上述代码可以用条件运算表达式实现:

    1. num = input()[::-1] # 将输入的字符串逆序
    2. print(-int(num[:-1])) if num[-1] == '-' else print(int(num))