【Python】 第三周:基本数据类型
整数
- python整数无限制
- 二进制:以
0b或者0B开头,例如:0b010,-0B101 - 八进制:以
0o或者0O开头,例如:0o123,-0O456
浮点数
- 浮点数间运算存在不确定尾数,不是bug
a = 0.1 + 0.2
print(a)
得到结果0.30000000000000004
不确定尾数一般发生在10-16左右,可以用
round(x,d)来辅助浮点数之间的运算,对x四舍五入,d是小数截取位数。浮点数可以用科学计数法表示,
4.3e-3表示4.3*10-3
数值运算操作符
//
下面是一段C语言代码
int a = 10, b = 3;
printf("%lf", a / b);
打印出来的结果将是3.00000
而在Python中
a = 10
b = 3
print(a/b)
会打印出3.3333333333333335
在Python中如果想实现C语言里面这种整数除,要用到双除号//
print(10//3)
打印出3
**
双乘号表示幂运算
print(10**3)
打印出1000,x**y即为xy(如果y小于1,则为开方运算)
数字类型的关系
不同类型之间可以进行混合运算,生成结果是最宽的类型
整数 < 浮点数 < 复数
数值运算函数
divmod(x,y)
商余,输出结果为x//y和x%y
pow(x,y[,z])
加中括号的参数是可以省略的
幂余,结果等于(x ** y) % z
round(x[,d])
四舍五入,d是保留小数的尾数,默认是0
max(x~1~, x~2~, ..., x~n~)
最大值
min(x~1~, x~2~, ..., x~n~)
最小值
int(x)
- 浮点数:舍弃小数部分直接把x变成整数
- 字符串:直接转成整数
float(x)
- 整数:增加小数部分.0000
- 字符串:直接变成对应的小数
complex(x)
把x变成复数
字符串
由0个或多个字符组成的有序字符序列
字符串的表示
字符串由
''或者""表示由一对三单引号
'''表示多行字符串
如果要在字符串中表示单引号,可以用双引号来创建
str = '''python
nb'''
print(str)
str = "这是一个单引号(')"
如果要在字符串中表示双引号,同理可以用单引号来创建
str = '这是一个双引号(")'
如果既要表示单引号又要表示双引号,可以用三单引号来表示
str = '''这是一个单引号('),这是一个双引号(")'''
字符串的序号
正向递增序号:和C语言一致。
反向递减序号:最后一个字符为-1,倒数第二个是-2,以此类推。
注意,Python字符串按序号取出来的“字符”不能更改,这一点是和C语言不一样的。
字符串使用
切片:返回字符串中的一段字符子串
str[M:N:K]
M缺失:从第一个位置开始
N缺失:一直到结尾
K:根据步长K对字符串进行切片
str = "0123456789"
print(str[::2])
打印结果是:02468
逆序技巧:使用切片,省略M和N,K = -1
str = "0123456789"
print(str[::-1])
打印结果是:9876543210
字符串操作符
x + y,表示连接两个字符串x和yn * x或x * n,复制n次x
n必须为整数
x in s,如果x是s的子串,返回True,否则返回False
字符串处理函数
len(x),返回字符串的长度str(x),任意类型的x转换为字符串hex(x)或oct(x),将一个整数转换成对应十六进制或八进制的字符串eval()chr(u),u为Unicode编码,返回其对应的字符ord(x),x为字符,返回其对应的Unicode字符
Unicode编码几乎覆盖所有字符,从0到(0x10FFFF)空间
字符串处理方法
str.lower()或str.upper(),返回字符串的副本,全部字符小写或大写str.split(),返回一个列表,由str根据seq被分隔的部分组成
str = "A,B,C"
print(str.split(','))
打印输出['A', 'B', 'C']
str.count(sub)返回子串sub在str中出现的次数
str = "yuriyuri"
print(str.count("y"))
打印出2
str.replace(old, new),把str中所有old子串,替换为new
str = "papp"
print(str.replace("ap","AP"))
str.center(width[,fillchar]),根据宽度width居中,fillchar省略为空str = "PLAAF"
print(str.center(20,"="))
打印结果为
=======PLAAF========
str.strip(chars)从str中去除其左侧和右侧chars中列出的字符
str = "lanlanlu"
print(str.strip("la"))
打印出nlanlu,最左侧的la被去掉了,而中间的不受影响。
str.join(iter),这个函数用法比较不同,iter是将要被切开的字符串,而str是切开后填充进去的分隔字符串,在每个元素之后(除最后一个位置)填充
str = "ChaoWeiLaanMao"
print(str.join(",,"))
打印结果是,ChaoWeiLaanMao,
str = ","
print(str.join("ChaoWeiLanMao"))
这样才是对的。打印C,h,a,o,W,e,i,L,a,n,M,a,o
字符串类型的格式化
使用.format()方法
槽:用{}表示,槽的顺序默认情况下是从左到右和format对应的
print("{}/{}/{}".format("2021","10","8"))
打印出2021/10/8
也可以在槽中填写数字
print("{1}/{2}/{0}".format("2021","10","8"))
打印出10/8/2021
format()方法的格式控制
下列代码和之前的str.center()的效果是一样的
print("{:=^20}".format("PLAAF"))
| : | = | ^ | 20 |
|---|---|---|---|
| 引导符号 | 用于填充的字符 | 居中对齐 | 槽设定的输出宽度 |
对齐部分
< 表示左对齐
> 表示右对齐
print("{0:,.2f}".format(12345.6789))
打印出12,345.68
| , | .2 | f |
|---|---|---|
| 数字的千位分隔符 | 浮点数小数的精度 | 浮点数类型 |
整数类型字段
- b:二进制
- c:Unicode编码
- d:十进制
- o:八进制
- x:十六进制
- X:大写十六进制
浮点数类型字段
- e:科学计数法小e表示
- E:科学计数法大e表示
- f:通常的小数表示形式
- %:百分数形式表示
Time库
time库是Python中处理时间的标准库
- 计算机时间的表达
- 提供获取系统时间并格式化输出功能
- 提供系统级精确计时功能,用于程序性能分析
import time
time库包括三类函数
时间获取
time()
import time
print(time.time())
获取当前时间戳,得到一个浮点数,该值是自1970年1月1日00:00开始计时
ctime()
import time
print(time.ctime())
打印出来Fri Oct 8 17:00:21 2021
获取当前时间,返回人类能看懂的字符串
gmtime()
import time
print(time.gmtime())
打印出来time.struct_time(tm_year=2021, tm_mon=10, tm_mday=8, tm_hour=9, tm_min=1, tm_sec=30, tm_wday=4, tm_yday=281, tm_isdst=0)
返回的结果貌似是格林威治时间,北京时间还得再+8
可见gmtime()返回的是一个结构,是计算机可以处理的格式
时间格式化
strftime()
import time
t = time.gmtime()
print(time.strftime("%Y/%m/%d %H:%M:%S", t))
打印出2021/10/08 09:04:29
| 格式化字符串 | 日期/时间说明 |
|---|---|
| %Y | 年份 |
| %m | 月份的数字 |
| %B | 月份的英文名称 |
| %b | 月份的英文缩写 |
| %d | 日期的数字 |
| %A | 星期几的英文名称 |
| %a | 星期几的英文缩写 |
| %H | 小时的24小时制 |
| %I | 小时的12小时 |
| %p | AM/PM |
| %M | 分钟 |
| %S | 秒 |
strptime(str, tpl)
这个函数的作用是,把表示时间的格式化字符串转换为一个计算机能处理的结构
str是字符串形式的时间,tpl是格式化模板字符串
import time
timestr = time.ctime()
print(time.strptime(timestr,"%a %b %d %H:%M:%S %Y"))
程序计时
sleep(s)
让程序休眠,单位是秒
perf_counter()
返回一个CPU级别的精确时间计数值,单位为秒
这个返回值是没有固定起点的,要连续调用算差值才有意义
import time
start = time.perf_counter()
print(start)
for i in range(3**15):
i = i + 1
end = time.perf_counter()
print(end)
print(end-start)
【Python】 第三周:基本数据类型的更多相关文章
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- Python第三周 数据类型:集合set、文件的读写、追加操作。
集合 知识点:集合是无序的 格式:{1,2,3,"str_test"} set_1 = set(list1)#将列表转换为集合 集合关系测试: 集合的逻辑判断.取交集.并集.差集. ...
- Python的三种基本数据类型
数字 int(整型) long(长整型),python对长整型没有限制,理论上可以无限大.python3后没有long了. float 字符串 加了引号的都是字符串. 单引号和双引号没有约 ...
- 人生苦短我用Python 第三周 函数周
函数的定义: 1,def 函数名(参数1,参数2......): "注释:函数的作用和参数,增加可读性", 2,函数体 3,返回值 最简单的函数: def func(): prin ...
- Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)
1.Networked Programs 1.Internet 我们现在学习Internet部分,即平时我们浏览器做的事情,之后再学习客服端这部分 2.TCP 传输控制协议 3.Socket HTTP ...
- Python第三周第一次作业中关于工程目录各种导入的模拟学习
目录 Python工程目录 导入自定义模块, 包 记录的缘由 模块搜索路径 模块: 导入模块 导入函数 导入类 多个类 @(Python第三周第一次作业中工程目录,模拟学习) Python工程目录 导 ...
- python第三周文件处理和函数-----下
#默认参数的值是在一开始定义的时候就传给了函数, # 在后来的修改中不会被修改. #默认参数的值必须放到位置形参参数的最后面 #默认参数使用的场景是一个参数不经常变得场景,所以参数一般是不可变类型.字 ...
- python第三周:集合、函数、编码、文件
1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...
- Python第三周 函数详解
def 函数名(): """注释说明"""" 执行逻辑体 return 返回值 定义不带参数的函数 带参数的函数 默认参数 这个是 ...
- Python 学习日记(第三周)
知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...
随机推荐
- Python - 如何将 list 列表作为数据结构使用
列表作为栈使用 栈的特点 先进后出,后进先出 如何模拟栈? 先在堆栈尾部添加元素,使用 append() 然后从堆栈顶部取出一个元素,使用 pop() # 模拟栈 stack = [1, 2, 3, ...
- IKEv2协议协商流程: (IKE-SA-INIT 交换)第一包
文章目录 1. IKEv2 协商总体框架 2. 第一包流程图 3. openswan源码学习 3.1 ikev2parent_outI1() 3.2 ikev2parent_outI1_withsta ...
- C# Dapper基本三层架构使用 (一、架构关系)
Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这时Dapp ...
- 判断input radio选中那个
var _sex=$("input[name='sex']:checked").val(); if(_sex==null){ layer.msg("请选择性别" ...
- Redis核心原理与实践--列表实现原理之ziplist
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入.弹出数据,可以充当栈和队列的角色. > LPUSH fruit apple (integer) 1 > RPUSH ...
- 完全分布式Hadoop2.X的搭建
准备工作: 安装jdk 克隆2台虚拟机完成后:新的2台虚拟机,请务必依次修改3台虚拟机的ip地址和主机名称[建议三台主机名称依次叫做:master.node1.node2 ](虚拟机的克隆,前面的博客 ...
- 433MHZ SPI模块使用心得
最近使用了433MHZ的模块进行了一个通讯项目,选用的是SX1208模块,对接了RTOS和Linux两个操作系统,使用心得如下: 1. 首先要拿来datasheet看一遍,通揽一下它的功能.可以得到一 ...
- 【Linux】LNMP1.6 环境报500错误解决方法
vi /usr/local/nginx/conf/fastcgi.conf 进入编辑fastcgi.conf 找到 fastcgi_param PHP_VALUE "open_base ...
- Shell系列(4)- 历史命令
格式:history [选项] [历史命令保存文件] 选项: -c:清空历史命令 -w:把缓存中的历史命令写入到历史命令保存文件~ /.bash_history;用户的家目录下 例子: [root@l ...
- Python爬虫之PySpider框架
概述 pyspider 是一个支持任务监控.项目管理.多种数据库,具有 WebUI 的爬虫框架,它采用 Python 语言编写,分布式架构.详细特性如下: 拥有 Web 脚本编辑界面,任务监控器,项目 ...