整数

  • 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)

打印出1000x**y即为xy(如果y小于1,则为开方运算)

数字类型的关系

不同类型之间可以进行混合运算,生成结果是最宽的类型

整数 < 浮点数 < 复数

数值运算函数

divmod(x,y)

商余,输出结果为x//yx%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和y
  • n * xx * 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)返回子串substr中出现的次数
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】 第三周:基本数据类型的更多相关文章

  1. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  2. Python第三周 数据类型:集合set、文件的读写、追加操作。

    集合 知识点:集合是无序的 格式:{1,2,3,"str_test"} set_1 = set(list1)#将列表转换为集合 集合关系测试: 集合的逻辑判断.取交集.并集.差集. ...

  3. Python的三种基本数据类型

    数字 int(整型) long(长整型),python对长整型没有限制,理论上可以无限大.python3后没有long了. float   字符串   加了引号的都是字符串.   单引号和双引号没有约 ...

  4. 人生苦短我用Python 第三周 函数周

    函数的定义: 1,def 函数名(参数1,参数2......): "注释:函数的作用和参数,增加可读性", 2,函数体 3,返回值 最简单的函数: def func(): prin ...

  5. Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)

    1.Networked Programs 1.Internet 我们现在学习Internet部分,即平时我们浏览器做的事情,之后再学习客服端这部分 2.TCP 传输控制协议 3.Socket HTTP ...

  6. Python第三周第一次作业中关于工程目录各种导入的模拟学习

    目录 Python工程目录 导入自定义模块, 包 记录的缘由 模块搜索路径 模块: 导入模块 导入函数 导入类 多个类 @(Python第三周第一次作业中工程目录,模拟学习) Python工程目录 导 ...

  7. python第三周文件处理和函数-----下

    #默认参数的值是在一开始定义的时候就传给了函数, # 在后来的修改中不会被修改. #默认参数的值必须放到位置形参参数的最后面 #默认参数使用的场景是一个参数不经常变得场景,所以参数一般是不可变类型.字 ...

  8. python第三周:集合、函数、编码、文件

    1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...

  9. Python第三周 函数详解

    def 函数名(): """注释说明"""" 执行逻辑体 return 返回值 定义不带参数的函数 带参数的函数 默认参数 这个是 ...

  10. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

随机推荐

  1. ES6中函数调用自身需要注意的问题

    在传统的递归调用中,可以采用如下方式 function sum(n) { return sum(n - 1) + n;} 但如今es6盛行,为了保持代码一致性,可以采用两种解决方式. 第一种,将thi ...

  2. (一)Superset 1.3图表篇——Table

    本系列文章基于Superset 1.3.0版本.1.3.0版本目前支持分布,趋势,地理等等类型共59张图表.本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程. 而且目前 ...

  3. NOIP模拟16:「Star Way To Heaven·God Knows·Loost My Music」

    T1:Star Way To Heaven 基本思路:   最小生成树.   假如我们将上边界与下边界看作一个点,然后从上边界经过星星向下边界连边,会发现,他会形成一条线将整个矩形分为左右两个部分. ...

  4. P1721 [NOI2016] 国王饮水记 题解

    蒟蒻的第一篇黑题题解,求过. 题目链接 题意描述 这道题用简洁的话来说,就是: 给你 \(n\) 个数字,你可以让取其中任意若干个数字,每次操作,都会使所有取的数字变为取的数字的平均数,并且你最多只能 ...

  5. TCP可靠传输原理

    停止等待协议 "停止等待"就是发送方在发送完一个分组后停止发送,等待接收方的确认后再继续发送. 超时重传 发送方在等待一定时间后如果还没有收到接收方的确认,此时发送方将认定分组没有 ...

  6. finally方法体

    1.资源释放 java7可以在try(创建资源对象,方法体结束之后自动释放) 2.finally中有返回

  7. 数据导出生成Excel附件使用POI的HSSFWorkbook对象

    比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel.Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组 ...

  8. Android学习记录(一)——安装Android Studio

    "工欲善其事必先利其器"学习安卓开发的第一步,安装Android Studio. 一.什么是Android Studio? Android Studio 是谷歌推出的一个Andro ...

  9. POJ 2509 Peter's smokes(Peter的香烟)

    POJ 2509 Peter的香烟 描述 Peter抽烟.他抽烟一个个地抽着烟头.从 k (k>1) 个烟头中,他可以抽一根新烟.彼得可以抽几支烟? 输入 输入是一系列行.每行包含两个给出n和k ...

  10. ECDSA—模逆模块

    在有限域Fp上的非零元素a的逆记为a-1mod p .即在有限域Fp上存在唯一的一个元素x,使得ax恒等于1(mod p),则元素x为a的逆a-1 .本次设计采用扩展的整数Euclidean算法来求逆 ...