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

news2024/11/15 14:39:03

目录

  • 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.01

for 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 = 1
    for 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 time

print(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 time

t = 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 = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^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 = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dynamics365 本地部署整体界面

昨天已经登陆上去了然后今天开机突然又登陆不上去了 具体原因也不知道 然后我把注册插件删除又重新下载结果还是登陆不上去于是返回之前的断点就可以登陆上去了重复昨天的操作这里就不截图了6、注册新步骤右键单击&#xff08;插件&#xff09;BasicPlugin.FollowUpPlugin&…

MySQL 主备一致

MySQL 主备一致主备切换binlog 格式statementrowmixed生产格式循环复制问题主备切换 MySQL 主备切换流程 : 状态 1 : 客户端的读写都直接访问节点 A&#xff0c;而节点 B 是 A 的备库&#xff0c;只将 A 的更新都同步过来 , 并本地执行。来保持节点 B 和 A 的数据是相同当切换…

Python蓝桥杯训练:基本数据结构 [二叉树] 中

Python蓝桥杯训练&#xff1a;基本数据结构 [二叉树] 中 文章目录Python蓝桥杯训练&#xff1a;基本数据结构 [二叉树] 中一、[翻转二叉树](https://leetcode.cn/problems/invert-binary-tree/)二、[对称二叉树](https://leetcode.cn/problems/symmetric-tree/)三、[二叉树的最…

Vue3这样子写页面更快更高效

在开发管理后台过程中,一定会遇到不少了增删改查页面,而这些页面的逻辑大多都是相同的,如获取列表数据,分页,筛选功能这些基本功能。而不同的是呈现出来的数据项。还有一些操作按钮。 对于刚开始只有 1,2 个页面的时候大多数开发者可能会直接将之前的页面代码再拷贝多…

工作记录:调研monorepo和微前端

2023年1月。因工作项目需要&#xff0c;调研 monorepo 、微前端等技术。 任务 一直在做的 BI 项目&#xff0c;随着需求迭代&#xff0c;模块越来越多&#xff0c;项目越来越复杂、臃肿。 最近&#xff0c;前一阶段的开发工作基本结束。新模块还在设计阶段。借此契机&#xf…

进阶C语言——数据的存储【详解】

文章目录1. 数据类型介绍1.1 类型的基本归类2. 整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习3. 浮点型在内存中的存储3.1 一个例子3.2 浮点数存储的规则1. 数据类型介绍 前面我们已经学习了基本的内置类型&#xff1a; char //字符数据类型 short //短整型 …

学习ForkJoin

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

链表OJ之 快慢指针法总结

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 快慢指针指的是每次指针移动的步长&#xff0c;是解决链表相关的题目的一大利器&#xff0c;下面我将以例题的形式讲解快慢指针法。 目录 一. 链表的中间结点 思路&#xff1a; 代码实…

GMP调度模型总结

优秀文章 什么是GMP调度模型 Golang的一大特色就是Goroutine。Goroutine是Golang支持高并发的重要保障。Golang可以创建成千上万个Goroutine来处理任务&#xff0c;将这些Goroutine分配、负载、调度到处理器上采用的是G-M-P模型。 什么是Goroutine Goroutine Golang Coro…

云舟案例︱视频孪生技术赋能城市安全综合管理场景,提升城市数智化水平

随着城市化发展进程的加快&#xff0c;人口不断膨胀&#xff0c;社会安全隐患等问题日益突出&#xff0c;成为困扰城市建设与管理的重要难题。针对各类社会治安突出问题&#xff0c;城市管理部门积极推进城市信息化建设&#xff0c;视频监控等各类信息化采集手段为城市数字化管…

嵌入式学习笔记——使用寄存器编程实现按键输入功能

文章目录前言模块介绍原理图编程思路前言 昨天&#xff0c;通过配置通用输出模式&#xff0c;实现了LED灯的点亮、熄灭以及流水等操作&#xff0c;解决了通用输出的问题&#xff0c;今天我们再借用最常见的输入模块&#xff0c;按键来实现一个按键控制LED的功能&#xff0c;重…

SpringBoot【知识加油站】---- REST开发

SpringBoot【知识加油站】---- REST开发1. REST 简介2. REST 风格3. RESTful 入门案例1. REST 简介 REST&#xff1a;Representaional State Transfer&#xff0c;表现形式状态转换 传统风格资源描述形式 http://localhost/user/getById?id1 http://localhost/user/saveUser…

91. 解码方法 ——【Leetcode每日刷题】

91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法&#xff0…

Kubernetes13:Ingress

Kubernetes13&#xff1a;Ingress 1、把端口号对外暴露&#xff0c;通过ip端口号进行访问 使用Service里面的NodePort实现&#xff08;Cluster、LoadBanlancer、NodePort&#xff09; 2、NodePort缺陷 在每个节点上启动一个端口&#xff0c;在访问时候通过任何节点&#xf…

MySQL(五)锁

锁全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁总结计算机用锁来协调多个进程或线程并发访问某一资源。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并…

业务流程图TFD和数据流程图DFD例题

业务流程图&#xff08;TFD&#xff09;管理业务流程图&#xff08;Transaction Flow Diagram&#xff0c;简称TFD&#xff09;用来描述系统各部门、人员之间存在的业务关系、作业顺序以及管理信息流向的图表。绘制该图使用以下四种符号&#xff1a;例题例题1&#xff1a;物资订…

【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?

文章目录前言什么是外挂&#xff1f;锁血瞬移都是怎么做的&#xff1f;Unity引擎的致命缺陷是什么&#xff1f;WEB入侵如何做到&#xff1f;Unity外挂攻防概述典型游戏现实应用Unity开发流程Unity工作界面打包发布方式MonoMono跨平台原理JIT方式优点&#xff1a;因此后期Unity发…

【数据分析师求职面试指南】实战技能部分

文章目录必备技能数据人员如何创造价值完整的指标体系构建数据监控集报表设计设计一份优质的数据分析报告基于互联网大数据的应用A B 测试用户画像完整的数据挖掘项目流程1. ​分析问题&#xff0c;明确目标2.模型可行性分析3.选取模型4.选择变量5.特征工程6.建立模型&效果…

大数据项目实战之数据仓库:用户行为采集平台——第4章 用户行为数据采集模块

第4章 用户行为数据采集模块 4.1 数据通道 4.2 环境准备 4.2.1 集群所有进程查看脚本 1&#xff09;在/home/atguigu/bin目录下创建脚本xcall [atguiguhadoop102 bin]$ vim xcall2&#xff09;在脚本中编写如下内容 #! /bin/bashfor i in hadoop102 hadoop103 hadoop104 d…

判断推理之类比推理与定义判断

考点一包含关系&#xff08;一&#xff09;种属关系快速判定方法&#xff1a;XX是一种XX。(可以用“是”来造句子)如&#xff1a;苹果&#xff1a;水果&#xff1b;老虎&#xff1a;哺乳动物&#xff08;二&#xff09;组成关系快速判定方法&#xff1a;A是B的一部分。(不可以用…