输入一个正整数,输出它的所有质数因子(如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) # 输出该数的所有质因子
/
和 //的区别🍈
在 Python 中, /
和 //
都是用于除法运算的操作符,但它们有很大的区别。
/
是普通的除法运算符,结果是一个浮点数,即使两个数都是整数。例如:
>>> 7 / 2
3.5
>>> 10 / 3
3.3333333333333335
//
是整数除法运算符,结果是一个整数,只保留除法结果的整数部分,即忽略余数。例如:
>>> 7 // 2
3
>>> 10 // 3
3
因此,/
和 //
的区别在于,/
运算符返回浮点数,而 //
运算符返回整数。
将一个列表的数据复制到另一个列表中,我们可以联系到赋值语句,将数值赋值给一个变量
那列表可以这样子操作吗? 让我们一起尝试一下:
# 列表浅赋值
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 列表浅拷贝是指将一个已有的列表直接赋值给另一个变量,二者指向同一内存地址的操作。意味着,当你修改其中一个列表的元素时,另一个列表也会受到影响。例如:
list1 = [1, 2, 3]
list2 = list1
list2[0] = 4
print(list1) # 输出 [4, 2, 3]
print(list2) # 输出 [4, 2, 3]
当我们改变 list2 中的第一个元素时,list1 也会被修改。这是因为它们指向同一内存地址。
正确写法:
import copy
list = [1,2,3,4]
list1 = copy.copy(list)
list[0]=30
print(list1)
Python的标准库非常广泛,提供了广泛的 设施如下面列出的长目录所示。这些库包含内置模块(用 C 编写),提供对 系统功能,例如文件 I/O,否则 Python程序员无法访问,以及用Python编写的模块 为在 日常编程。其中一些模块明确设计为 通过抽象来鼓励和增强 Python 程序的可移植性 将特定于平台的 API 转换为与平台无关的 API。
copy模块是Python标准库中的一个模块,主要提供了对象复制的功能。在Python中,赋值操作只是给对象起了一个新的名字,而不是创建了一个新的对象。如果需要复制一个对象,可以使用copy模块提供的函数。copy模块提供了浅复制和深复制两种方式,浅复制只会复制对象本身,而不会复制对象中的子对象;而深复制会将对象和所有子对象全部复制一份。常用的函数包括copy()和deepcopy()函数。
copy模块是Python的一个标准库,它提供了一些复制和拷贝对象的方法。以下是一些常用的方法:
1.copy():用于浅复制一个对象,即创建一个新对象,但其中的元素是原对象的引用,因此在对原对象进行修改时,新对象也会受到影响。
举例:
import copy
old_list = [1, 2, ['a', 'b', 'c']]
new_list = copy.copy(old_list)
old_list[2][0] = 'd'
print(old_list) # [1, 2, ['d', 'b', 'c']]
print(new_list) # [1, 2, ['d', 'b', 'c']]
2.deepcopy():用于深复制一个对象,即创建一个新对象,其中所有的元素都是复制的,而不是原对象中的引用。
举例:
import copy
old_list = [1, 2, ['a', 'b', 'c']]
new_list = copy.deepcopy(old_list)
old_list[2][0] = 'd'
print(old_list) # [1, 2, ['d', 'b', 'c']]
print(new_list) # [1, 2, ['a', 'b', 'c']]
需要注意的是,如果复制的对象中包含自定义的类或对象,可能需要额外实现__copy__()
和__deepcopy__()
方法。
可以使用python里面time模块中的sleep方法
import time
print("你好")
time.sleep(10)#括号里输入的是秒数
print("Hello world.")
利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
# 成绩if语句
# 利用条件运算符的嵌套来完成此题:
# 学习成绩>=90分的同学用A表示,
# 60-89分之间的用B表示,
# 60分以下的用C表示。
score = int(input("请输入你的成绩:"))
if score >= 90:
print("A")
elif 60 <= score and score <= 89:
print("B")
else:
print("C")