Python基本数据类型(1)

类型间可进行混合运算,生成结果为"最宽"类型

  • 三种类型存在一种逐渐"扩展"或"变宽"的关系:

整数 -> 浮点数 -> 复数

  • 例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)

数值运算函数

一些以函数形式提供的数值运算功能

| abs(x) | 绝对值,x的绝对值abs(-10.01) 结果为 10.01 |

| — | — |

| divmod(x,y) | 商余,(x//y, x%y),同时输出商和余数 divmod(10, 3) 结果为 (3, 1) |

| pow(x, y[, z]) | 幂余,(x**y)%z,[…]表示参数z可省略 pow(3, pow(3, 99), 10000) 结果为 4587 |

| round(x[, d]) | 四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12 |

| max(x1,x2, … ,xn) | 最大值,返回x1,x2, … ,xn中的最大值,n不限 max(1, 9, 5, 4, 3) 结果为 9 |

| min(x1,x2, … ,xn) | 最小值,返回x1,x2, … ,xn中的最小值,n不限 min(1, 9, 5, 4, 3) 结果为 1 |

| int(x) | 将x变成整数,舍弃小数部分 int(123.45) 结果为123; int(“123”) 结果为123 |

| float(x) | 将x变成浮点数,增加小数部分 float(12) 结果为12.0; float(“1.23”) 结果为1.23 |

| complex(x) | 将x变成复数,增加虚数部分 complex(4) 结果为 4 + 0j |


好好学习,天天向上


基本问题:持续的价值

问题1: 1的力量

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

1.01^365

  • 一年365天,每天退步1%,累计剩下多少呢?

0.99^365

代码实现

up = pow(1.001, 365)

down = pow(0.999, 365)

print(“向上:{:.2f},向下:{:.2f}”.format(up, down))

结果:

在这里插入图片描述

不积小流无以成江海,不积跬步无以至千里。


问题2:0.5%和0.1%的力量

  • 一年365天,每天进步0.5%或0.1%,累计进步多少呢?

  • 一年365天,每天退步0.5%或0.1%,累计剩下多少呢?

1.005^365 0.995^365

1.01^365 0.99^365

代码实现

day = 0.005

up = pow(1+day, 365)

down = pow(1-day, 365)

print(“向上:{:.2f},向下:{:.2f}”.format(up, down))

结果:

在这里插入图片描述


问题3: 工作日的力量

  • 一年365天,一周5个工作日,每天进步1%

  • 一年365天,一周2个休息日,每天退步1%

  • 这种工作日的力量,如何呢?

1.01365 (数学思维)——》 for…in… (计算思维)

代码实现:

#利用循环模拟 nice

#注意代码的缩进

up = 1.0

day = 0.01

for i in range(365):

if i % 7 in [6,0]: #用来确定周末的时间

up = up*(1-day)

else: #工作日的时间

up = up*(1+day)

print("工作日的力量:{:.2f} ".format(up))

结果:

在这里插入图片描述

1.001^365 = 1.44

1.005^365 = 6.17

1.01^365 = 37.78

1.019^365 = 962.89

毛主席说:“好好学习,天天向上”


在这里插入图片描述


字符串类型


主要内容:

  • 字符串类型的表示

  • 字符串操作符

  • 字符串处理函数

  • 字符串处理方法

  • 字符串类型的格式化

Go Go Go

在这里插入图片描述


字符串类型的表示

由0个或多个字符组成的有序字符序列

  • 字符串由一对单引号或一对双引号表示

"请输入带有符号的温度值: " 或者 ‘C’

  • 字符串是字符的有序序列,可以对其中的字符进行索引

“请” 是 "请输入带有符号的温度值: " 的第0个字符


表示方法

字符串有 2类共4种 表示方法

  • 由一对单引号或双引号表示,仅表示单行字符串

"请输入带有符号的温度值: " 或者 ‘C’

  • 由一对三单引号或三双引号表示,可表示多行字符串

‘’’ Python

语言 ‘’’

为什么这样提供四种

  • 假如我们想用单引号,就可以外加一对双引号

  • 加入我们们既想用双引号又想用单引号,就可以让我们的三引号登场

  • 另外没有给变量名的三引号字符串可以充当多行注释来使用


正向递增序号 和 反向递减序号

在这里插入图片描述


使用[ ]获取字符串中一个或多个字符

  • 索引:返回字符串中单个字符 <字符串>[M]

"请输入带有符号的温度值: "[0] 或者 TempStr[-1]

  • 切片:返回字符串中一段字符子串 <字符串>[M: N]

"请输入带有符号的温度值: "[1:3] 或者 TempStr[0:-1]


高级用法 使用[M: N: K]根据步长对字符串切片

<字符串>[M: N],M缺失表示至开头,N缺失表示至结尾

“〇一二三四五六七八九十”

[:3] 结果是 “〇一二”

<字符串>[M: N: K],根据步长K对字符串切片

“〇一二三四五六七八九十”

[1:8:2] 结果是 “一三五七” “〇一二三四五六七八九十”

[::-1] 结果是 “十九八七六五四三二一〇”


转义符

  • 转义符表达特定字符的本意

“这里有个双引号(”)" 结果为 这里有个双引号(") - 转义符形成一些组合,表达一些不可打印的含义

"\b"回退 "\n"换行(光标移动到下行首) “\r” 回车(光标移动到本行首)


字符串操作符

在这里插入图片描述

获取星期字符串

weekStr = “星期一星期二星期三星期四星期五星期六星期日”

weekId = eval(input(“请输入星期数字(1-7):”))

pos = (weekId – 1 ) * 3

print(weekStr[pos: pos+3])

在这里插入图片描述

优化

weekStr = “一二三四五六日”

weekId = eval(input(“请输入星期数字(1-7):”)) #获取用户输入,是一个字符串类型 eval函数去掉引号 如果没加就会报错

print(“星期” + weekStr[weekId-1]) #因为字符串下标是0开始的

在这里插入图片描述


字符串处理函数

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

在这里插入图片描述

在这里插入图片描述

Python字符串的编码方式

  • 统一字符编码,即覆盖几乎所有字符的编码方式

  • 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符

  • Python字符串中每个字符都是Unicode编码字符

玩一玩

b=“1 + 1 = 2” + chr(10004)

c=“这个字符♉的Unicode值是:a” + str(ord(“♉”))

print(b)

print©

for i in range(12):

print(chr(9800 + i), end=“”)

在这里插入图片描述


字符串处理方法

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

  • "方法"特指.()风格中的函数()

  • 方法本身也是函数,但与有关,.()风格使用

  • 字符串或字符串变量是,存在一些可用方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


字符串类型的格式化

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


time库基本介绍


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

用途:

  • 计算机时间的表达

  • 提供获取系统时间并格式化输出功能

  • 提供系统级精确计时功能,用于程序性能分析

用法:

import time

time.()

time库包括三类函数

  • 时间获取:time() ctime() gmtime()

  • 时间格式化:strftime() strptime()

  • 程序计时:sleep(), perf_counter()

时间获取

在这里插入图片描述

在这里插入图片描述

时间格式化

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

  • 格式化:类似字符串格式化,需要有展示模板

  • 展示模板由特定的格式化控制符组成

  • strftime()方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

程序计时应用

  • 程序计时指测量起止动作所经历时间的过程

  • 测量时间:perf_counter()

  • 产生时间:sleep()

在这里插入图片描述

在这里插入图片描述


文本进度条实现


需求分析

  • 采用字符串方式打印可以动态变化的文本进度条

  • 进度条需要能在一行中逐渐变化

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

  • 采用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.4) #每隔0.4秒打印一次,模拟

print(“------执行结束------”)

在这里插入图片描述

优化单行动态刷新

不让换行就可以 哈哈

刷新的关键是 \r退回行首

  • 刷新的本质是:用之后打印的字符覆盖之前的字符

  • 不能换行:print()需要被控制

  • 要能回退:打印后光标退回到之前的位置 \r

import time

for i in range(101):

print(“\r{:3}%”.format(i), end=“”)

time.sleep(0.1)

完整代码:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

完整代码:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-T5ZVXBm7-1713636598818)]

[外链图片转存中…(img-XdM4yWcj-1713636598819)]

[外链图片转存中…(img-DAkLypcL-1713636598820)]

[外链图片转存中…(img-8YFIglmD-1713636598820)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值