每天5个python练习案例,小白和初学的快来当练手吧!坚持就是胜利!
注:解题思路都在代码里面的注释里了,大家可以先看题尝试着自己做,然后对照着下面方法改进或者若代码出现问题或有更好的解法欢迎大家批评指正我。
目录
【No6】复制列表
题目:将一个列表的数据复制到另一个列表中。
赋值:赋值引用,a与 b都是指的同一个对象,b随着a的变化变化
浅拷贝:a,b整体独立,但是他们里面的子对象还是指的同一个对象(是引用),同时变化
深拷贝:完全拷贝,两者完全独立
import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a #赋值
c = a[:] #浅拷贝
d = copy.copy(a) #浅拷贝
print("浅拷贝:{}".format(c))
e = copy.deepcopy(a)
print("深拷贝:{}".format(c))
#实例演示
a.append(5)
a[4].append('miky')
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)
运行代码
浅拷贝:[1, 2, 3, 4, ['a', 'b']]
深拷贝:[1, 2, 3, 4, ['a', 'b']]
a= [1, 2, 3, 4, ['a', 'b', 'miky'], 5]
b= [1, 2, 3, 4, ['a', 'b', 'miky'], 5]
c= [1, 2, 3, 4, ['a', 'b', 'miky']]
d= [1, 2, 3, 4, ['a', 'b', 'miky']]
e= [1, 2, 3, 4, ['a', 'b']]
Process finished with exit code 0
【No7】暂停一秒输出
import time
print(time.time()) #时间戳 距离1970年的秒数
for i in range(4):
print(str(int(time.time()))[-2:]) #取后两位
time.sleep(1) #运用time函数中的sleep 延时一秒
【No8】繁殖的兔子
题目:有一对兔子,从出生后第 3个月起每个月都生一对兔子小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?
思路分析:算法中的迭代法(递推法) 其中前6个月兔子数量为1,1,2,3,5,8 很明显属于斐波那契数列
month = int(input("请问兔子繁殖几个月:"))
#定义变量,进行初始化
if month == 1 or month == 2: #特殊情况判断,前两个月兔子没有繁殖
print("一共一只兔子。")
else:
month_1 = 1 # n-2个月兔子的数量
month_2 = 1 # n-1个月兔子的数量
rabbit_num = 0
for i in range(3, month+1):
rabbit_num = month_1 + month_2
month_2 = month_1
month_1 = rabbit_num
print("繁殖%d个月之后兔子总数量为:%d" % (month, rabbit_num))
【No9】判断素数
题目:判断101~200之间有多少素数,并输出所有素数
import math
#方法一:一一遍历,if else 判断
li1 = [] #用于存储素数
for i in range(101, 201):
for j in range(2, int(math.sqrt(i) + 1)): #这里为了减少遍历次数,提高效率
if i % j == 0:
break
else:
li1.append(i)
print("101~200之间的素数有", li1)
#方法二:假设成立法
li2 = []
for i in range(101, 201):
flag = 1
for j in range(2, int(math.sqrt(i) + 1)):
if i % j == 0:
flag = 0
break
if flag:
li2.append(i)
print(li2, "是质数")
【No10】分解质因数
题目:将一个整数分解质因数
#将一个整数分解质因数
target = int(input("请输入一个整数;"))
print(target, '=', end = ' ')
if target < 0:
target = abs(target)
print('-1*', end = ' ')
flag = 1
if target <= 1:
print(target)
flag = 0
while flag:
# if flag == 0:
# break
for i in range(2, int(target+1)):
if target % i == 0:
if i == target:
flag = 0
print("%d " % i, end='')
else:
print('%d *' % i, end=' ')
target /= i
break