首页 > 编程语言 >python基础三之基本数据类型

python基础三之基本数据类型

时间:2024-08-31 16:24:10浏览次数:11  
标签:基本 10 字符 python 浮点数 数据类型 str time 字符串

1.数字类型及操作

1.1 整数类型

  可正可负,没有取值范围限制

pow(x,y)  计算x的y次方,想算多大算多大

  1. 4种进制表示形式

十进制:如:1019,8,-8

二进制:由0b或0B开头,只由0,1组成,如:0b0110,-0B101010101

八进制:由0O或0o开头:0O123,-0O445

十六进制:又0X或0x开头:0X89,-0x9a

1.2 浮点数类型

  带有小数点及小数的数字,浮点数的取值范围和小数精度都存在限制,但常规计算可忽略,取值范围数量级约-10的307次方至10的308次方,精度数量级10的-16次方

  浮点数直接存在不确定尾数,如0.1+0.2=0.3000000000000000004  

3后面就是不确定尾数,所以在判断两个浮点数运算的值要和一个浮点数做比较时,统称使用round(数值,保留小数位)来对数值四舍五入,在进而做判断才会成功

  1. 浮点数可以用科学计算法来表示,使用字母e或E作为幂的符号,以10为基数,格式:<a>e<b>,如a*10的b次方

1.3 复数类型

   a+bj称为复数,其中a是实部,b是虚部,若z=123e-4+5.6e+89j,python中可以通过z.real获得复数的虚部,z.imag获得虚部

1.4 数值运算操作符及函数

   数值运算操作符,操作符是完成运算的一种符号体系

  二元操作符有对应的增强赋值操作符

  数值的运算函数

2.字符串的类型及操作

2.1 字符串:是由0个或多个字符组成的有序字符序列。

  1. 表示形式:单行字符串由一对双引号或一对单引号表示,如"你好!",'C',多行字符串由一对三单引号(''' ''')或一对三双引号("""   """)表示(若未赋值给一个变量 那此时表示是注释)。
  2. 性质:字符串上字符点有序序列,可对其中的字符进行索引。
  3. 相关操作:使用[ ]获取字符串中一个或多个字符

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

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

       切片:返回字符串中一段字符子串 <字符串>[M: N],<字符串>[M: N],M缺失表示至开头,N缺失表示至结尾

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

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

2.2 转义符

转义符\,转义符表达特定字符的本意,转义符形成一些组合,表达一些不可打印的含义,如"\b"回退,"\n"换行(光标移动到下行首),"\r"回车(光标移动到本行首)

2.3 字符串操作符

  相关操作

操作符及使用

描述

x+y

连接两个字符x和y

n*x或x*n

复制n此字符串x

x in s

如果x是s的子串,返回True,否则返回False

字符串处理函数:<a>(字符串)形式

函数及使用

描述

len(x)

返回字符串x的长度,len("一二三")结果为3

str(x)

任意类型x所对应的字符串形式,str(1.23)结果为"1.23"

hex(x)或oct(x)

整数x的十六进制或八进制小写形式字符串

chr(u)

Unicode编码转换为对应字符

ord(x)

字符x转换为对应Unicode编码

注:Unicode为python字符串的编码方式(python字符串中每个字符都是Unicode编码字符)

字符串处理方式:变量.<b>()或字符串.<b>()

方法及使用

描述

str.lower()或str.upper()

返回字符串的副本,全部小写/大写

str.split(sep=None)

返回一个列表,由str根据sep被分隔的部分组成,"A,B,C".split(",")结果为['A','B','C']

str.count(sub)

返回子串sub在str出现的次数,"happy".count("p")结果为2

str.replace(old,new)

返回字符串str副本,所有old子串被替换为new,"python".replace("n","n123.a")结果为"python123.a"

str.center(width[,fillchar])

字符串str根据宽度width居中,fillchar可选"python"center(20,"=")结果为"=======python======="

str.strip(chars)

从str中去掉在其左侧和右侧chars中列出的字符,"= python= ".strip(" =np")结果为"ytho"

str.join(iter)

在iter变量除最后元素外每个元素后增加一个str(主要用于字符串分隔等),",".join("123")结果为"1,2,3"

find(sub, start, end)

返回子字符串首次出现的位置,如果未找到则返回-1,"hello".find('e') 输出 1

index(sub, start, end)

与 find() 类似,但如果未找到子字符串则抛出 ValueError。"hello".index('o') 输出 4

更多字符串处理方法见:https://zhuanlan.zhihu.com/p/672106570

        2.4 字符串类型的格式化

<模版字符串>.format(<逗号分隔的参数>)

默认:其结果为"2018-10-10:计算机C的CPU占用率为10%"

若更改默认顺序,"{1}:计算机{0}的CPU占用率为{2}"则结果围殴"C:计算机2018-10-10的CPU占用率为10%"

  •         format()方式的格式控制

        槽内部对格式化的配置方式,{<参数序号>:<格式控制标记>}

如"{0:=^20}".format("PYTHON")格式化为输出宽度为20,字符串居中,以=填充(凑够20宽度,即结果为'=======PYTHON======='

"{:10}".format("BIT")格式化为(因为未定以填充的字符与左对齐,默认使用填充空格,左对齐)宽度为10的,即结果为'BIT       '

"{0:,.2f}".format(12345.6789)格式为保留两位小数的浮点数并带千位分隔符输出,其结果为'123,345.89'

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)分别格式化为二进制数,Uincode字符,十进制,八进制,十六进制(小写形式),十六进制(大写形式),其结果为

'110101001,\sum,425,651,1a9,1A9'

3.time库的使用

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

import time

time.<b>()

time库包括三类函数

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

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

程序计时:产生时间sleep()  测量时间perf_counter()

函数

描述

time()

获取当前时间戳,即计算机内部时间值,浮点数

ctiem()

获取当前时间并以易读方式表示,返回字符串

gmtime

获取当前时间,表示为计算机可处理的时间格式

strftime(tpl,ts)

tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量,t=time.gmtime()   time.strftime("%Y-%m-%d %H:%M:%S",t)结果为'2024-08-31 15:52:00'

 strptime(str,tpl)

str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果

sleep(s)

s拟休眠时间,单位是秒,可以是浮点数

perf.counter()

返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义

格式化控制符

4.代码实例

  • 文本进度条:采用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))  # 格式化为三部分:c对应宽度为3保留0小数的浮点数带以空格填充的一部分后加%,[a对应一部分->b对应的一部分]
    time.sleep(0.1)  # 隔0.1显示一个进度
print("------执行开始-------")



------执行开始-------
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行开始-------
  • ”文本进度条”单行动态刷新

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

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

        要能回退:打印后光标退回到之前的位置,用转义字符\r

import time

scale = 50
print("执行开始".center(scale // 2, "-"))  # 居中,宽度整除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='')  # 每次回退输出
    # 格式化为四部分:c对应宽度为3保留0小数的浮点数带以空格填充的一部分后加%,[a对应一部分->b对应的一部分],dur对应保留2位小数的浮点数后加s
    time.sleep(0.1)
print("\n" + "执行结束".center(scale // 2, "-"))  # 换行,居中,宽度整除2输出

标签:基本,10,字符,python,浮点数,数据类型,str,time,字符串
From: https://blog.csdn.net/jia_ueana/article/details/141753824

相关文章

  • (免费源码)计算机毕业设计必看必学 SSM大学生实习就业推荐系统68986 原创定制程序 java
    SSM大学生实习就业推荐系统 摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于角度存在偏差,人们经常能够获取不同类型的信息,这也是技术最为难以攻克的课题。针对大学生实习就业推荐系统等问题,对大学生实习就业推荐系统进行研究......
  • 使用广播星历计算卫星坐标(Python)
    前言本代码为GNSS课程设计代码,仅供参考,使用的计算方法与公式均来源于王坚主编的《卫星定位原理与应用(第二版)》。本代码计算结果可以通过下载精密星历进行比照,误差在1-10m左右。实现功能:读取卫星广播星历,并将其计算为WGS-84坐标系下的坐标,每颗卫星,每15分钟输出一次。广播星历......
  • python中的编码&解码
    https://cloud.tencent.com/developer/article/2278351编码(encode):将Unicode字符串转为特定编码格式对应的字节码的过程;就是将字符串转换为字节码解码(decode):将特定编码格式的字节码转为对应的Unicode字符串的过程;就是将字节码转换为字符串正确写法只有str.encode()和bytes.decod......
  • 阿尔茨海默病症识别+图像识别Python+人工智能+深度学习+TensorFlow+机器学习+卷积神经
    一、介绍阿尔茨海默病症识别。使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对病症图片4种数据集进行训练['轻度痴呆','中度痴呆','非痴呆','非常轻微的痴呆'],最终得到一个识别精确度较高的模型。然后使用Django框架......
  • Python基础学习---黑马程序员
    1.变量------课后练习money=50print("当前钱包余额:",money,"元")bql=10money=money-bqlprint("购买了冰淇淋,花费:",bql,"元")kl=10money=money-klprint("购买了可乐,花费:",kl,"元")print("最终,钱包剩余:",money......
  • 2024年8月31日 Python - asycnio
    参考asyncio---异步I/O—Python3.12.4文档asyncio视频教程-bilibili6.2.9. yield表达式—Python3.12.4文档PEP380:委托给子生成器的语法yield介绍yieldx生成一个内容yieldfrom委托给子生成器,yieldfromiterable本质上只是foritemini......
  • python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响
    前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregi......
  • python并发与并行(十) ———— 结合线程与协程,将代码顺利迁移到asyncio
    在前一篇中,我们用asyncio模块把通过线程来执行阻塞式I/O的TCP服务器迁移到了协程方案上面。当时我们一下子就完成了迁移,而没有分成多个步骤,这对于大型的项目来说,并不常见。如果项目比较大,那通常需要一点一点地迁移,也就是要边改边测,确保迁移过去的这一部分代码的效果跟原来相同。为......
  • python并发与并行(九) ———— 用asyncio改写通过线程实现的IO
    知道了协程的好处之后,我们可能就想把现有项目之中的代码全都改用协程来写,于是有人就担心,这样修改起来,工作量会不会比较大呢?所幸Python已经将异步执行功能很好地集成到语言里面了,所以我们很容易就能把采用线程实现的阻塞式I/O操作转化为采用协程实现的异步I/O操作。在这里我们要补充......
  • python并发与并行(八) ———— 用协程实现高并发的I/O
    在前面几条里,我们以生命游戏为例,试着用各种方案解决I/O并行问题,这些方案在某些情况下确实可行,但如果同时需要执行的I/O任务有成千上万个,那么这些方案的效率就不太理想了像这种在并发方面要求比较高的I/O需求,可以用Python的协程(coroutine)来解决。协程能够制造出一种效果,让我们觉得Py......