美文网首页
Day043|Python编程300例之反转任意一个正整数

Day043|Python编程300例之反转任意一个正整数

作者: 龙渊的宝藏 | 来源:发表于2021-04-07 20:25 被阅读0次

今天是Andy学Python的第43 天哦! 

大家好,我是Andy。 

前两天学习了《Day041|Python编程300例之反转一个3位整数》,心神荡漾了一下(注意不是春心荡漾),能不能反转任意一个正整数。这个问题的挑战之处在于,你事先并不知道输入的是几位数,之前所用的区分个十百千万的各位数字方法并不适用。想到列表有逆序排列的方法,尝试解决此问题。经过两天的努力,终于搞定。解决方案的过程详细如下,以供参考。或许该方法仍有不足,只是目前还未测试出来,如有问题或建议,文末联系作者。

01.

项目需求

输入任意一个正整数,反转输出。如输入123456,输出654321,输入900,返回9。

02.

拆分任务

2.1 将输入的整数转换为列表。

2.2 将列表反转。

2.3 将反转后的列表转换为字符串。

2.4 将字符串转换成整数。

完成整数输出,需要使用int(),其参数只能是数字或字符串,所以将列表先转换成字符串,再传入int()。

03.

版本1.0

查看教材,将列表逆序排列方法重新学习一遍。

输入123456,输出654321;

输入900,输出900;

输入654321,输出654321。

未实现目的。

04.

版本1.1

寻求云哥帮助。问题可能出在sort(reverse=True),这是将列表升序排序再降序。

输入900,输出9;

输入102,输出21。

问题出在:

num_list = [item for item in nums if item != "0"]

该语句只是将原数字中非0数字传入列表。我的用意是任意数字的列表反转输出,包含0,只是0作为首位转换成整数时自动去掉了,并不是不传入0。

05.

版本1.2

将云哥版本中的非0去掉,测试可行。

06.

版本1.3

重新考虑之前写的函数。

sort()是将数字从小到大升序排序(654321按从小到大排列是123456),reverse=True是降序排列。

云哥将步长设为-1输出,实现了反转的目的。

列表reverse()方法也可以实现反转。

尝试用reverse()方法修改。

07.

版本1.2与1.3代码

# 改云哥版本1.2

# 用意:输入任意一个正整数,反转,如输入123456,输出654321,输入900,返回9

def reverse_num(nums):  

    num_list = [item for item in nums]

    # print(num_list)

    rev_str = "".join(num_list[::-1])  # 拼接逆序后的字符串

    rev_int = int(rev_str)  # 字符串转成整数

    return rev_int  # 返回逆序后的整数   

nums = input("请输入一个数字:\n")

print(reverse_num(nums))   # 打印结果

# 改云哥版本1.3

# 用意:输入任意一个正整数,反转,如输入123456,输出654321,输入900,返回9

def reverse_num(nums):  

    num_list = list(nums)

    num_list.reverse()  # 列表反转

    rev_str = "".join(num_list)  # 将反转后的列表拼接到字符串

    rev_int = int(rev_str)  # 字符串转成整数

    return rev_int  # 返回反转后的整数   

numbers = input("请输入一个数字:\n")

print(reverse_num(numbers))   # 打印结果

51Day Day up!

向上向善,日进一步!

每天学习,努力成长!

定个小目标,开启成长的旅程,遇见更好的自己。

这是我们和自己的约定,许诺自己不负韶华。

路虽远,行则将至;事虽难,做则必成。

成长的最好时机,就是当下。

相关文章

  • Day043|Python编程300例之反转任意一个正整数

    今天是Andy学Python的第43天哦! 大家好,我是Andy。 前两天学习了《Day041|Python编程3...

  • Spark基础二之RDD编程

    Spark基础二之RDD编程 RDD弹性分布式数据集 Python、Java、Scala中任意类型的对象或者用户自...

  • 反素数研究

    反素数研究 定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意正整数,都有,那么称为反素数。 ...

  • 贪心算法

    按要求补齐数组 给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补...

  • 给定一个正整数求最少由几个数的平方和组成

    tips:也就是说任意一个正整数都可以由若干个正整数的平方和组合而成,具体原理不知

  • 测试面试题六

    技术方面: 1、代码能力: 1.1、请用自己最擅长的编程语言,将一个字符串反转并输出? python实现:方法1、...

  • 从Scratch到Python之角色与造型

    从Scratch到Python之角色与造型 继续讲解通过python turtle从积木编程过渡到代码编程的技巧....

  • python 之禅

    python之禅-被官方接纳的python编程指导原则 在python的Shell中键入import this ,...

  • 回溯法

    题目大意: 给一个正整数列表alist和指定正整数T,不限定每个数的使用次数,返回任意元素相加之和等于指定数的所有...

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

网友评论

      本文标题:Day043|Python编程300例之反转任意一个正整数

      本文链接:https://www.haomeiwen.com/subject/ptgohltx.html