Python练习题100例(部分题目多解)8-11 从零开始的python学习之路(第3期)print格式控制,time模块常用函数的调用

   日期:2020-09-02     浏览:108    评论:0    
核心提示:Python快速上手练习题本期内容比较简单,主要是time模块的几个常用函数可以留意一下practice8题意输出 9*9 乘法口诀表。分析分行与列考虑,共9行9列,i控制行,j控制列。这里可以留意一下print函数参数控制的方式 “一段格式”+%+参数表,如果没有后面的参数表就正常输出字符串,有参数列表就一定要使参数个数和前面格式控制符的个数相等,不然会报错以下为常用数据类型:%d 对应 整数%s 对应 字符串%f 对应 浮点数%.2f 控制小数点右边位数的格式,%.位数f

Python快速上手练习题

本期内容比较简单,主要是time模块的几个常用函数可以留意一下


practice8

题意

输出 9*9 乘法口诀表。

分析

分行与列考虑,共9行9列,i控制行,j控制列。

这里可以留意一下print函数参数控制的方式 “一段格式”+%+参数表,如果没有后面的参数表就正常输出字符串,

有参数列表就一定要使参数个数和前面格式控制符的个数相等,不然会报错

以下为常用数据类型:
%d 对应 整数
%s 对应 字符串
%f 对应 浮点数
%.2f 控制小数点右边位数的格式,%.位数f (注意有个’.’)

代码

for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%d"%(j,i,i*j),end=" ")#end=''这个参数可以控制print结尾的字符,默认值为换行符
    print("")    #这里就体现了end的默认值,换行




practice9

题目

暂停一秒输出。

分析

调用time库中sleep()函数,下面还会介绍一些常用的其他函数,具体看代码

代码

import time

for i in range(1,10):
    print("现在是第%d秒"%(i))
    time.sleep(1)

#以下为time库中的一些其他有意思的函数

print(time.ctime())  #以可读字符串方式返回时间
print(time.time())   #以浮点数形式返回时间
print(time.gmtime()) #返回计算机可处理类型的时间

print(time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime()))   #得到一个格式化的时间


start1 = time.perf_counter()    #返回当前时间(浮点数形式),比time()精细得多,统计sleep的时间
time.sleep(2)
end1 = time.perf_counter()
print("perf_counter()的结果",end1-start1)


start2 = time.process_time()  #返回当前时间(浮点数形式),比time()精细得多,不统计sleep的时间
time.sleep(2)
end2 = time.process_time()
print("process_time()的结果",end2-start2)




practice10

题目

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

分析

参照practice9
不过还是给一下代码

代码

import time

print(time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime()))   
time.sleep(1)
print(time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime()))   

practice11

题意

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

分析

规律为1,1,2,3,5,8…是熟悉的斐波那契

具体求法可参照practice6,可以自己试试速度,这里放最快的方法

代码

mod = 1000000007     #斐波那契数列后面会极大,为了防止数据过大就模这个数,用了hash的思想来判断结果是否正确

class Matrix:
    def __init__(self,a1=0,a2=0,b1=0,b2=0):                     #初始化矩阵
        self.data = [[0 for i in range(2)]for j in range(2)]    #python中定义类的数据成员要放在init函数中,放在外面的相当于静态成员变量,类似与c++中加了static的数据成员
        self.data[0][0] = a1
        self.data[0][1] = a2
        self.data[1][0] = b1
        self.data[1][1] = b2
    
    def __mul__(self,other):                                #矩阵相乘的运算符重载
        ret = Matrix()
        for i in range(2):
            for j in range(2):
                for k in range(2):
                    ret.data[i][j] += (self.data[i][k] * other.data[k][j])%mod
                    ret.data[i][j] %= mod
        return ret


def q_pow(a,b):                         #快速幂,复杂度为O(logn)
    ret = Matrix(1,0,0,1)
    while b!=0:
        if b & 1:
            ret = ret * a
        a = a*a
        b //= 2
    return ret

identity = Matrix(1,1,1,0)

print("1\n1")
for i in range(1,40):
    ans = q_pow(identity,i)
    print(ans.data[0][0]+ans.data[0][1])

后面应该不会一个一个题讲下去了,前面这十几题已经可以让大家对python有个概念了,后面会挑一些我能扩展出东西的题目写,然后把重心放在应用上。大家可以关注一波~~

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服