当前位置: 首页 > news >正文

【2023】某python语言程序设计跟学第三周内容

目录

  • 1.数字类型与操作:
    • 整数:
    • 浮点数:
    • 复数
    • 数值运算操作符
    • 数字之间关系
    • 数值运算函数
  • 2.案例:天天向上的力量
    • 第一问:1‰的力量
    • 第二问:5‰和1%的力量
    • 第三问:工作日的力量
    • 第四问:工作日的努力
  • 3.字符串类型及操作
    • 字符串类型表示
    • 字符串操作符
    • 字符串处理函数
    • 字符串处理方法
    • 字符串类型的格式化
  • 4.time库使用
    • 时间获取:
    • 时间格式化
    • 程序计时应用
  • 5.案例:文本进度条
    • 文本进度条:
    • 如何获得文本进度条的变化时间:
    • 案例代码:
    • 代码讲解:

1.数字类型与操作:

整数:

  • 可正可负,没有取值范围限制
  • pow(x,y):计算x的y次方,没有限制
  • 四种进制表示形式:
    • 十进制
    • 二进制
    • 八进制
    • 十六进制

浮点数:

浮点数间运算存在不确定尾数,不是bug

>>>0.1 + 0.2
0.300......4

使用round函数计算浮点数,小数点后取一位

round(0.1+0.2,1) == 0.3
  • 带有小数点及小数的数字

  • 浮点数取值范围和小数精度都存在限制,但常规计算可忽略

  • 取值范围约-10的308到10的308次方,精度数量级10的-16次方

  • 使用字符e或E作为幂的符号,以10为基数,格式如下:

<a>e<b>
a*10的b次方

复数

与数学中复数一致

数值运算操作符

加减乘除整数除
+、-、*、/、//
# x本身
+x
# y的负值
-y
# 取余数
x % y
# 幂运算,次方
x**y
# 二元操作符
x op= y

数字之间关系

三种类型存在一种逐渐“扩展”或“变宽”的关系

整数——》浮点数——》复数

数值运算函数

  • 绝对值:abs(x)x的绝对值,例:abs(-10.1),结果为10.1
  • 商余:divmod(x,y),例:divmod(10,3),值为(3,1)
  • 幂余:pow(x,y[,z]):例:pow(3,pow(3,99),10000)值为4587
  • 最大值:max(x1,x2,x3),例:max(1,3,5),值为5
  • 最小值:min(x1,x2,x3),例:min(1,3,5),值为1
  • int(x):将x变成整数,舍弃小数部分
  • float(x):将x变成浮点数,增加小数部分
  • complex(x):将x变成复数,增加虚数部分

2.案例:天天向上的力量

第一问:1‰的力量

  • 一年365天,每天进步1‰,累计进步多少呢?

  • 每天退步1‰,累计剩下的还有多少?

dayup =pow(1.001, 365)
daydown =pow(0.999, 365)print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))向上:1.44, 向下:0.69

第二问:5‰和1%的力量

  • 一年365天,每天进步5‰或1%,累计进步多少呢?
  • 每天退步5‰或1%,又剩下多少呢?
# 千分之一
dayfactor = 0.005
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))向上:6.17, 向下:0.16# 百分之一
dayfactor = 0.01
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))向上:37.78, 向下:0.03

第三问:工作日的力量

  • 一年365天,一周五个工作日,每天进步1%
  • 双休日每天退步1%
dayup = 1.0
dayfactor = 0.01for i in range(365):if i % 7 in [6,0]:dayup = dayup*(1-dayfactor)else:dayup = dayup*(1+dayfactor)print("工作日的力量:{:.2f} ".format(dayup))工作日的力量:4.63 

第四问:工作日的努力

  • 工作日需要努力到什么程度,才能与每天努力1%一样
  • A:每天进步1%,365天不停歇
  • B:工作日进步5天,双休日每天下降1%,要多努力?
def dayUP(df):dayup = 1for i in range(365):if i % 7 in [6,0]:dayup = dayup*(1 - 0.01)else:dayup = dayup*(1 + df)return dayup
dayfactor = 0.01
while dayUP(dayfactor) < 37.78:dayfactor += 0.001
print("工作日的努力参数是:{:.3f} ".format(dayfactor))工作日的努力参数是:0.019 

3.字符串类型及操作

字符串类型表示

字符串有两类共4种表达方式:

  • 由一对单引号或双引号表示单行字符串
”请输入密码:“
‘python’
  • 由一堆三单引号或双引号表示多行字符串
''' 人生苦短我用python'''

字符串的序号:

  • 正向递增序号 和 反向递减序号
  • 正向从0开始,反向从-1开始

字符串的使用:

  • 使用[]获取字符串中一个或多个字符
  • 索引:返回字符串中单个字符
"请输入带有符号温度值:"[0]
或
TempStr[-1]
  • 切片:返回字符串中的一段子串
"请输入带有符号温度值:"[1:3]
或
TempStr[0:-1]

字符串切片高级用法:

  • 使用[M:N:K]根据步长对字符串切片
  • <字符串>[M:N]:M缺失表示至开头,N缺失表示至结尾
”零一二三四五六七八九十“[:3] 结果为零一二
  • <字符串>[M:N]:根据步长K对字符串进行切片
# 步长为2进行取值
”零一二三四五六七八九十“[1:8:2] 结果为一三五七# 逆序
”零一二三四五六七八九十“[::-1] 结果为十九八七六五四三二一零

字符串的特殊字符:

  • 转义符:\表示特定字符的本意
\":表示"本身的含义
\b:回退
\n:换行
\r:回车,光标移动到本行首

字符串操作符

x + y:连接两个字符串x和y
n * x 或 x * n:复制n次字符串x
x in s:如果x是s的子串,返回True,否则返回false

例:

weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekId-1])请输入星期数字(1-7):1
星期一

字符串处理函数

一些以函数形式提供的字符串处理功能

  • len(x):返回字符串的长度
  • str(x):将结果转换为字符串形式
  • hex(x)/cot(x):转换成x的十六进制形式或八进制形式字符串
  • chr(u):u为unicode编码,返回对应的字符
  • ord(x):x为字符,返回对应的unicode编码

Unicode编码:python字符串的编码形式

  • 统一字符编码,即覆盖几乎所有字符的编码形式
  • 从0到1114111空间,每个编码对应一个字符

示例:输出12星座的字符串形式

for i in range(12):print(chr(9800 + i), end="")♈♉♊♋♌♍♎♏♐♑♒♓

字符串处理方法

方法在 编程中是一个专有名词

- “方法”特指<a>.<b>()风格中的函数<b>()
- 方法本身也是函数,但与<a>有关,<a>.<b>()风格使用
- 字符串及变量也是<a>,存在一些方法

一些以方法形式提供的字符串处理功能

- str.lower()str.supper():返回字符串的副本,全部字符小写或大写
print("aBBNvfN".lower())
abbnvfn- str.split(sep=None):返回一个列表,由str根据sep被分隔的部分组成
print("a,B,B".split(","))
['a,B,B']- str.count(sub):返回子串sub在str中出现的次数
print("asd ad da waaa as".count("a"))
7- str.replace(ord, new):返回字符串副本,所有old子串替换成new
print("python".replace("n", "n123"))
python123- str.center(width[,fillchar]):字符串str根据宽度width居中,fillchar可选
print("python".center(20, "="))
=======python=======- str.strip(chars):str中去掉左侧和右侧chars中列出的字符
print("= - s python ==".strip("= -s"))
python- str.join(iter):iter变量除最后元素外的每个元素后增加一个str
print("。".join("python"))
p。y。t。h。o。n

字符串类型的格式化

格式化是对字符串进行格式表达的方式

  • 字符串格式化使用.format()方法

在这里插入图片描述
在这里插入图片描述

print("{0:=^20}".format("python"))
=======python=======print("{0:,.2f}".format(1234.3233))
1,234.32

4.time库使用

time库是python中处理时间的标准库

  • 计算机时间表达
  • 提供获取系统时间并格式化输出功能
  • 提供系统级精确计时功能,用于程序性能分析

time库包括三类函数

  • 时间获取:time()、ctime()、gmtime()
  • 时间格式化:strftime()、strptime()
  • 程序计时:sleep(), pref_counter()

时间获取:

获取当前时间戳的三种方式及结果:

import timeprint(time.time())print(time.ctime())print(time.gmtime())# 输出结果
1678366911.6781032
Thu Mar  9 21:01:51 2023
time.struct_time(tm_year=2023, tm_mon=3, tm_mday=9, tm_hour=13, tm_min=1, tm_sec=51, tm_wday=3, tm_yday=68, tm_isdst=0)

时间格式化

将时间以合理的方式展示出来

  • 格式化:类似字符串格式化,需要有展示模板
  • 展示模板由特定的格式化控制符组成

格式化字符串:

%Y:年份:0000~9999
%m:月份;01~12
%B:月份名称;January~December
%b:月份缩写;Jan~Dec
%A:星期;Monday~Sunday
%a:星期缩写;Mon~Sun
%H:小时(24小时制);00~23
%I:小时(12小时制);01~12
%p:上下午;AM,PM
%M:分钟;00~59
%S:秒;00~59
import timet = time.gmtime()print(time.strftime("%Y-%m-%d %H:%M:%S", t))# 输出结果
2023-03-09 13:16:08

程序计时应用

  • 程序计时指测量起止动作所经历时间的过程
  • 测量时间:perf_counter()
  • 产生时间:sleep(),休眠

5.案例:文本进度条

文本进度条:

  • 采用字符串方式打印可以动态变化的文本进度条
  • 进度条需要能在一行中逐渐变化

如何获得文本进度条的变化时间:

  • 采用sleep()模拟一个持续的时间

案例代码:

import time
scale = 10
print("------执行开始------")
for i in range(scale+1):a = '*' * ib = '.' * (scale - i)c = (i/scale)*100print("{:^3.0f}%[{}->{}]".format(c,a,b))time.sleep(0.1)
print("------执行结束------")# 输出结果
------执行开始------0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行结束------

代码讲解:

  • 第一行:引入time库
  • 第三、十行:开始结束标签
  • 第二行:文本进度条宽度
  • 第四行:定义一个for循环

文本进度条单行动态刷新:

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

完整代码:

import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):a = '*' * ib = '.' * (scale - i)c = (i/scale)*100dur = time.perf_counter() - startprint("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))

相关文章:

【2023】某python语言程序设计跟学第三周内容

目录1.数字类型与操作&#xff1a;整数&#xff1a;浮点数&#xff1a;复数数值运算操作符数字之间关系数值运算函数2.案例&#xff1a;天天向上的力量第一问&#xff1a;1‰的力量第二问&#xff1a;5‰和1%的力量第三问&#xff1a;工作日的力量第四问&#xff1a;工作日的努…...

c++11右值引发的概念

右值引用右值&&左值c11增加了一个新的类型&#xff0c;右值引用&#xff0c;记作&#xff1a;&&左值是指在内存中有明确的地址&#xff0c;我们可以找到这块地址的数据&#xff08;可取地址&#xff09;右值是只提供数据&#xff0c;无法找到地址&#xff08;不…...

MySQL 02 :三层结构、备份删除数据库

MySQL 02 &#xff1a;数据库三层结构-破除MySQL神秘 请添加图片描述 通过golang操作MySQL 创建删除数据库 备份恢复数据库 第一次需要配置环境&#xff0c;否则会报错 报错&#xff1a;mysqldump: Got error: 1045: Access denied for user ‘root’‘localhost’ (using …...

质量员错题合集

项目部质量员根据规范要求认为&#xff0c;接地用的绝缘铜电线规定最小截面为( )mm。4 项目部质量员根据规范要求认为&#xff0c;接地用的绝缘铜电线规定最小截面为4mm&#xff0c;是从( )性能考虑的。机械、 案例中所使用的ZST型闭式喷头的工作压力是( )MPa。1.2 案例中所…...

请教大神们,pmp考试和复习有什么攻略诀窍吗?

PMP考试通过率挺高的&#xff0c;很多考生也是朝九晚五甚至天天加班的打工人&#xff0c;还是有很多人通过了的&#xff0c;我也是下班后和周末才有时间学习的&#xff0c;3A通过&#xff0c;但不是什么考试大神&#xff0c;每天抽出3-4个小时跟着培训机构制定的学习计划学习&a…...

Go语言基础之接口

Go语言基础之接口1.Go语言接口类型2.类型与接口的关系一个类型实现多个接口多种类型实现同一接口3.空接口4.类型断言1.Go语言接口类型 每个接口类型由任意个方法签名组成&#xff0c;接口的定义格式如下&#xff1a; type 接口类型名 interface{方法名1( 参数列表1 ) 返回值列…...

【Go自学第一节】GoLang 数据类型

和Java类型&#xff0c;go拥有多种数据类型&#xff0c;可以把它分为四个大类基础类型、聚合类型、引用类型和接口类型 一、基本数据类型 基本数据类型又可以细分为&#xff1a;数字类型&#xff08;整型、浮点型&#xff09;、布尔类型、字符串类型 整型 Go 的整型分为有符号…...

学习ForkJoin

学习ForkJoin一、普通解决多线程方式1、案例一2、效果图二、ForkJoin一、普通解决多线程方式 1、案例一 大数据量的List问题处理&#xff0c;多线程分批处理&#xff0c;需要解决的问题&#xff1a; 下标越界。线程安全。数据丢失。 private static ThreadPoolExecutor thre…...

System has not been booted with systemd as init system (PID 1). Can‘t operate.

今天想查看防火墙的状态&#xff0c;但是对防火墙的操作还不熟悉&#xff0c;网上搜到的命令是这样的systemctl status firewalld 结果输入之后出现了这样的错误&#xff1a; System has not been booted with systemd as init system (PID 1). Can’t operate. 然后接着去网上…...

使用Endnote自定义参考文献格式

使用Endnote自定义参考文献格式 使用Endnote插入参考文献&#xff0c;若要设置期刊指定格式或自己想要的参考格式&#xff0c;使用EndNote自定义方法&#xff0c;步骤如下。 注&#xff1a;有的期刊会给出EndNote的格式文件&#xff0c;那样直接导入就行。 文章目录使用Endnot…...

jsPlumb Components Crack

jsPlumb Components Crack 为支持Vue 2&#xff0c;所有组件都添加了包装器。 已为所有组件添加了包装器以支持Svelte。 改进了在流程图生成器中编辑多个选定节点。 jsPlumb组件是一组可嵌入的组件&#xff0c;可将可视连接快速集成到网页中。jsPlumb组件基于jsPlumb Toolkit库…...

Java接口

目录 为什么有接口&#xff1f; 接口的定义和使用 注意 接口的基本使用 接口成员的特点 接口和类之间的关系 为什么有接口&#xff1f; 接口就是一种规则 对行为的抽象 接口侧重于行为 接口的定义和使用 接口用于关键字interface来定义public interface 接口名{ }接口不…...

二叉树OJ题目详解

根据二叉树创建字符串 采用前序遍历的方式&#xff0c;将二叉树转换成一个由括号和数字组成的字符串。 再访问每一个节点时&#xff0c;需要分情况讨论。 如果这个节点的左子树不为空&#xff0c;那么字符串应加上括号和左子树的内容&#xff0c;然后判断右子树是否为空&#x…...

#Vue3篇:响应式工具ref()、toRef()、 toRefs()、reactive()的用法和区别

ref() 定义: ref()接收一个普通的Javascript值作为参数&#xff0c;将其转换为响应式对象&#xff08;ref对象&#xff09;。 ref对象有一个.value属性&#xff0c;用于获取和修改之。 参数1: 一个普通的Javascript值作为参数 import { ref } from vue const count ref(0) c…...

docker容器内安装gcc(trunk 最新版本)以及LLVM

1、docker内部只有wget以及git命令 项目需要&#xff0c;得更新docker容器中的gcc和LLVM版本但是由于没有预先安装apt、apt-get以及yum&#xff0c;导致很多安装过程就是鸡生蛋蛋生鸡反应。暂时没有找到合适的解决的方法&#xff0c;如果有大佬知道的话&#xff0c;欢迎留言哈…...

手把手教你如何做数据报表

数据报表是一种数据可视化形式&#xff0c;它将复杂的数据信息通过图形、表格等形式进行展示和解释&#xff0c;让人们更加直观地理解和分析数据。数据报表已成为现代企业决策的必备工具之一。对企业来说&#xff0c;数据报表有很多用处。首先&#xff0c;数据报表可以帮助企业…...

loadrunner的函数lr_paramarr()学习

好久没更新了&#xff0c;还是太懒了&#xff0c;正好最近有用到这个函数&#xff0c;浅浅记录一下 1、首先关联到的参数是个数组&#xff0c;比如用这个函数获取web_reg_save_param(“param”....); 那么保存到的参数是param_1&#xff1b;param_2;param_3;param_4;param_co…...

Hive---数据导出

数据导出 文章目录数据导出Insert 导出将查询的结果导出到本地将查询的结果格式化导出到本地将查询的结果导出到 HDFS 上Hadoop 命令导出到本地Hive Shell 命令导出Export 导出到 HDFS 上sqoop导出Insert 导出 表为student 将查询的结果导出到本地 insert overwrite local d…...

还不会CAD批量打印图纸?学会这招再也不怕

各位工程师&#xff0c;相信大家在工作过程中&#xff0c;经常会遇到需要打印大量图纸文件的时候&#xff0c;那么多的图纸&#xff0c;一张张打印太麻烦&#xff0c;此时便需要用到CAD批量打印功能啦&#xff01;可是&#xff0c;总有些新手设计师不直达奥CAD批量打印&#xf…...

硬件设计从失败案例中找方法

大家好&#xff0c;我是记得诚。 2022年底&#xff0c;受邀去上海参加电子技术大会&#xff0c;并在一个硬件设计的分论坛做一场演讲&#xff0c;题目是《硬件设计从失败案例中找方法》&#xff0c;一般演讲都是比较紧张的&#xff0c;而且是现场&#xff0c;台下坐着的都是同…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...