欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python练手例子(2)

程序员文章站 2022-07-10 11:32:44
7、将一个列表的数据复制到另一个列表中。 程序分析:使用列表[:]。 8、输出 9*9 乘法口诀表。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 9、暂停一秒输出。 程序分析:使用 time 模块的 sleep() 函数。 10、暂停一秒输出,并格式化当前时间。 11、古典问题:有一对 ......

7、将一个列表的数据复制到另一个列表中。

程序分析:使用列表[:]。

#python3.7

#适用于简单列表(即列表中都是基本的元素)
a1 = [1,2]
b1 = a1[:]
print(b1)

#不适合列表中包含列表的情况,如果要复制的列表中包含列表,只会复制那个列表的列表的引用
a2 = [1,[2,3]]
b2 = a2[:]
a2[1].append(4)
print(a2)
print(b2)
#此时b2复制的只是a2中[2,3]的引用 

结果: 
[1, 2] 
[1, [2, 3, 4]] 
[1, [2, 3, 4]]

 

8、输出 9*9 乘法口诀表。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

#python3.7
#左下三角格式输出九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%d' % (i,j,i*j),end=' ')
    print(' ')

结果:
1*1=1  
2*1=2 2*2=4  
3*1=3 3*2=6 3*3=9  
4*1=4 4*2=8 4*3=12 4*4=16  
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25  
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36  
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49  
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64  
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

 

9、暂停一秒输出。

程序分析:使用 time 模块的 sleep() 函数。

import time

myd = {1:'a', 2:'b'}
for key, value in dict.items(myd):
    print(key, value)
    time.sleep(1)
#暂停一秒后才输出

 

10、暂停一秒输出,并格式化当前时间。

#python3.7

import time

#输出当前时间
print(time.strftime('%y-%m-%d %h:%m:%s', time.localtime(time.time())))

time.sleep(1)

#输出下一秒时间
print(time.strftime('%y-%m-%d %h:%m:%s', time.localtime(time.time())))

结果:
2019-45-01/24/19 13:45:40
2019-45-01/24/19 13:45:41

 

11、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子对数的规律为数列1,1,2,3,5,8,13,21....

#python3.7

f1 = 1
f2 = 2
for i in range(1,22):
    print('%121d %121d' % (f1, f2))
    if (i % 3) == 0:
        print('')
    f1 = f1 + f2
    f2 = f1 + f2

 

12、判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

#python3.7

h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101, 201):
    k = int(sqrt(m + 1))
    for i in range(2, k + 1):
        if m % i == 0:
            leap = 0
            break
    if leap == 1:
        print('%-4d' % m)
        h += 1
        if h % 100 == 0:
            print('')
    leap = 1
print('the total is %d' % h)

结果:
101 
103 
107 
109 
113 
127 
131 
137 
139 
149 
151 
157 
163 
167 
173 
179 
181 
191 
193 
197 
199 
the total is 21

 

 

 

参考资料:

1、python 100例:http://www.runoob.com/python/python-100-examples.html

2、将一个列表的数据复制到另一个列表中。:https://blog.csdn.net/weixin_38889645/article/details/76718640