栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python小练习——整形反转

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python小练习——整形反转


前些时间刷到一道题,思考了一下才做出来,分享一下。

分别输入:123,321,-123,100,-200

希望得到:321,123,-321,1,-2

即希望在保留正负的情况下将整数进行反转,同时将前置的0去除。

代码: 一、
n=input()
if n[0]=='-':   #判断正负
    a=n[1:len(n)]    #将数字部分提取出来
    a=a[::-1]      #反转
    a=str(int(a))   #利用python的int去除前置‘0’
    print('-'+ a)      #归还负号
else:
    a=n[::-1] 
    a=str(int(a))
    print(a)
二、

当时有人问了我一个问题,说如果不利用直接反转呢?

n=input()
b=str()       #定义一个空字符串
if n[0]=='-':   #判断正负
    for i in range(len(n)-1,0,-1):  #从后往前加入字符串
        b+=n[i]
    print('-'+str(int(b)))
else:
    for i in range(len(n)-1,-1,-1):
        b+=n[i]
    print(str(int(b)))
三、

或者不采用python的 int 定义呢?

n=input()
b=str()       #定义一个空字符串
c=True if n[len(n)-1]=='0' else False  #设立一个标识符
if n[0]=='-':   #判断正负
    for i in range(len(n)-1,0,-1):  #从后往前加入字符串
        if c==True and n[i]=='0':pass         
        else:b+=n[i]
        
    print('-'+b)
else:
    for i in range(len(n)-1,-1,-1):
        if c==True and n[i]=='0':pass         
        else:b+=n[i]
    print(b)

优化思路:

添加判断是否是数字,可以采用 eval (不是数字直接报错,但是如果是数字的话类型会变成int或者float,需要你后续再进行处理);或者输入完毕后使用正则表达式进行匹配,判断是否为数字。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号