2024年最全python每日一练(6)_python123 求质因子(去重复)

本文介绍了如何在Python中找到一个正整数的质数因子,比较了/和//的除法行为,并讲解了列表浅拷贝的概念。作者还提供了学习资源和鼓励系统化学习的重要性。
摘要由CSDN通过智能技术生成

🌈write in front🌈
🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
📝个人主页:Aileen_0v0🧸—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏——CSDN博客
🗼我的格言:“没有罗马,那就自己创造罗马~”

目录

(1)找质数因子🍇

Python 中 / 和 //的区别🍈

(2)复制列表🍎

Python 列表浅拷贝🍑

Python标准库模块-copy的使用🍊

(3)暂停后输出—暂停一段时间后输出🍍

(4)成绩if语句🍒


(1)找质数因子🍇

输入一个正整数,输出它的所有质数因子(如180的质数因子为 2、2、3、3、5。

#找质数因子
# 输入一个正整数,输出它的所有质数因子(如180的质数因子为 2、2、3、3、5)。

#先通过固定数值来查找它的质数因子
a = 180
#设置除数的起始值
y = 2
#创建一个空列表S存储所有的质数因子
S = []

# 通过while循环取出所有的质数因子
while a != y:#循环条件
    if a % y == 0:#说明y是它的质数因子
        S.append(y)
        a = a / y
    else:
        y += 1
    print(S)#通过在循环内部可以观察到每个质数因子增加的过程
    #通过打印的最终结果[2, 2, 3, 3],少了一个质数因子5
    #我们根据循环过程可以知道最后循环结束以后 a = 5 ,它也是180的质数因子
    #我们可以通过append 将其加到列表的末尾
S.append(int(a))
print(S)#通过打印结果我们发现列表S最后一个数据a是浮点数
# 我们根据上面的循环可以发现 再最后一次求a时用了 15 / 3
# 所以结果是浮点数--->所以我们需要 用int() 将a转成整型数据

#通过for 循环 将它们按照数字和空格相间隔的形式打印出来
for i in S:
    print(i,end=" ")

法2:

n = int(input("请输入一个正整数:")) # 输入一个正整数n
factors = [] # 创建一个空列表来存储因子

for i in range(2, n+1): # 遍历2到n之间的所有数
    while n % i == 0: # 当n可以整除i时
        factors.append(i) # 将i加入因子列表
        n //= i # 将n除以i

print("该数的所有质因子为:", factors) # 输出该数的所有质因子
 

  1. 用户输入一个正整数n,并使用int()函数将其转换为整数类型。
  2. 创建一个空列表factors,用于存储n的所有质因子。
  3. 使用for循环,遍历2到n+1之间的所有数字。因为一个数的质因子最大为它的平方根,所以从2开始遍历即可。
  4. 使用while循环,当n可以被i整除时,执行下面的步骤。
  5. 将i加入factors列表中。
  6. 将n除以i,更新n的值,去除重复的因子。
  7. 循环结束后,输出factors列表中的所有元素,即为n的所有质因子。

Python 中 ///的区别🍈

在 Python 中, /// 都是用于除法运算的操作符,但它们有很大的区别。

/ 是普通的除法运算符,结果是一个浮点数**,**即使两个数都是整数。例如:

>>> 7 / 2
3.5
>>> 10 / 3
3.3333333333333335

// 是整数除法运算符,结果是一个整数,只保留除法结果的整数部分,即忽略余数。例如:

>>> 7 // 2
3
>>> 10 // 3
3

因此,/// 的区别在于,/ 运算符返回浮点数,而 // 运算符返回整数。

(2)复制列表🍎

将一个列表的数据复制到另一个列表中,我们可以联系到赋值语句,将数值赋值给一个变量

那列表可以这样子操作吗?  让我们一起尝试一下:

# 列表浅赋值
list = [ 1,2,3,4]
list1 = list#将list赋值给list1
list[0] = 30
print(list1)

通过运行结果我们发现当我们将原列表赋值给我们创建的新的列表list1以后,再修改原来list里面的元素,我们会发现,最后打印出来的list1不是 [ 1,2,3,4],而是[30,2,3,4],这是为什么呢?

这就是列表里面的浅拷贝(浅赋值)👇

Python 列表浅拷贝🍑

Python 列表浅拷贝是指将一个已有的列表直接赋值给另一个变量,二者指向同一内存地址的操作。意味着,当你修改其中一个列表的元素时,另一个列表也会受到影响。例如:

list1 = [1, 2, 3]
list2 = list1
list2[0] = 4
print(list1)  # 输出 [4, 2, 3]
print(list2)  # 输出 [4, 2, 3]

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值