Python寒假学习

本文介绍了Python中time库的时间格式化方法,包括strftime和strptime函数的使用,以及程序计时应用。此外,详细讲解了循环结构,如for和while循环,以及遍历循环、计数循环和无限循环的实现。还涉及了条件判断、异常处理和函数的使用,最后通过实例展示了如何计算圆周率和使用random库生成随机数。
摘要由CSDN通过智能技术生成

Python 学习笔记

time 库

时间格式化

strftime(tpl,ts) tpl是格式化模板字符串,用来定义输出效果
ts是计算机内部时间类型变量t=time.gmtime() time.strftime("%Y-%m-%d %H:%M:%S",t)
控制符
年 %Y 0000~9999
月 %m 01~12
月份名称 %B january~december
月份名称缩写 %b Jan~Dec
日期 %d 01~31
星期 %A Monday~Sunday
星期缩写 %a Mon~Sun
%H 24小时制 00~23
%I 12小时制 01~12
%p AM,PM
%M 分钟 00~59
%S 秒 00~59
strptime 将字符串变成时间
strptime(str,tpl) str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果timeStr='2021-02-09 18:48:50' time.strptime(timeStr,"%Y-%m-%d %H:%M:&S")
程序计时应用 测量时间 perf_counter()以纳秒计算
由于计时起点不确定,连续调用差值才有意义start=time.perf_counter() end=time.perf_counter() end-start
产生时间 sleep(s)让程序休眠s秒时间,可以是浮点数

def wait():
    time.sleep(5.2)
  wait()  #c程序将等待5.2秒后再退出

文本进度条采用字符串方式打印可以动态变化的文本进度条
采用sleep()模拟持续进度

import time
scale=10
print("------执行开始------")
for i in range(scale+1):
    a='*'*i
    b='.'*(scale-i)
    c=(i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    time.sleep(0.1)
    print("------执行结束------")

单行动态刷新\r

import time
for i in range(101):
    print("\r{:3}%".format(i),end="")
    time .sleep(0.1)

程序的分支结构

单分支结构、二分支结构、多分枝结构、条件判断及组合、程序的异常处理

单分支结构

if<条件>:
<语句块>

guess=eval(input())
if guess==99:
   print("猜对了")

二分支结构

if<条件>:
<语句块1>
else:
<语句块2>

guess=eval(input())
if guess==99:
  print("猜对了")
else:
  print("猜错了")

紧凑形式:适用于简单表达式的二分支结构
<表达式1>if<条件>else<表达式2>

guess=eval(input())
print("猜{}了".format("对"if guess==99 else "错"))

是表达式的使用而不是语句的使用

多分支结构

if<条件>:
<语句块1>
elif:
<语句块2>
else:
<语句块3>

条件判断及组合
操作符
< > <= >= == !=
保留字
and 与 or 或 not 非
异常处理的基本使用
try:
<语句块1>
except<异常类型>:
<语句块2>

try:
 num=eval(input("请输入一个整数:"))
 print(num**2)
except:
print("输入不是整数")

finally:<>一定会执行
实例:身体质量指数BMI

a=eval(input("请输入身高:"))
b=eval(input("请输入体重:"))
BMI=b/(a*a)
print("BMI={}".format(BMI))
if BMI<18.5:
    print("偏瘦")
elif BMI>=15.5 and BMI<=24:
    print("正常")
elif BMI>24and BMI<28:
    print("偏胖")
else:
    print("肥胖")

循环结构

遍历循环,无限循环

遍历循环:

for <循环变量> in <遍历结构>:
<语句块>
计数循环(N次)
for i in range(N):
<语句块>
for i in range(M,N,K):
<语句块>
在这里插入图片描述
在这里插入图片描述
字符串遍历循环
for c in s:
<语句块>
s是一个字符串,c代表每个字符在这里插入图片描述
列表遍历循环
for item in ls:
<语句块>
ls是一个列表,遍历每个元素,产生循环在这里插入图片描述
文件遍历循环
for line in fi:
<语句块>
fi是文件标识符,遍历其每行,产生循环

无限循环

while<条件>:
<语句块>
循环控制保留字 break 、continue 跳出一层循环
循环高级用法
for <循环变量> in <遍历结构>:
<语句块1>
else:
<语句块2>

while <条件>:
<语句块1>
else:
<语句块2>

random库概述

基本随机数函数: seed()、random()
扩展随机数函数:
randint(a,b)生成a~b之间的整数
getrandbits(k)生成k比特长的整数
uniform(a,b)生成[a,b]之间的随机小数
randrange(m,n[k])生成[m,n)之间的步长为k的随机整数,choice(seq)从序列seq中随机选取一个元素
shuffle(seq)对序列seq中的元素随机排列并返回打乱后的序列
seed()是初始给定的随机数种子,默认为当前系统时间
random.seed(a=None)
random.seed(10)#产生种子10对应的序列
random()生成一个0~1.0之间的随机小数
圆周率计算

from random import random
from time import perf_counter
DAETS=1000*1000
hits=0.0
start=perf_counter()
for i in range (1,DAETS+1):
    x,y=random(),random()
    dist=pow(x**2+y**2,0.5)
    if dist <=1.0:
        hits=hits+1
pi=4*(hits/DAETS)
print("圆周率的值为:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))

在这里插入图片描述

函数和代码复用

函数作用:降低编程难度、代码复用
def<函数名>(<参数(0个或多个)>…<非可选参数>,<可选参数>):
<函数体>
return<返回值>
计算n!

def fact(n):
    s=1
    for i in range (1,n+1):
        s*=i
    return s
n=eval(input())
print(fact(n))

可变参数传递函数定义时可以设计可变数量参数,即不确定参数总数量
def <函数名>(<参数>,*b);
<函数体>
return <返回值>
lambda函数返回函数名作为结果(匿名函数,返回值就是它名字)
<函数名>-lambda<参数>:<表达式>
在这里插入图片描述
七段数码管绘制

import turtle
def drawline(draw):   #绘制单段数码管
    turtle.pendown()if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)
def drawdigit(digit):
    drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,6,8] else drawline(False)
    turtle.left(90)
    drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)
def drawdate(date):
    for i in date:
        drawdigit(eval(i))
def main():
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(5)
    drawdate("20220213")
    turtle.hideturtle()
    turtle.done()
main()    

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值