整数

  • python整数无限制
  • 二进制:以0b或者0B开头,例如: 0b010-0B101
  • 八进制:以0o或者0O开头,例如:0o123-0O456

浮点数

  • 浮点数间运算存在不确定尾数,不是bug
  1. a = 0.1 + 0.2
  2. print(a)

得到结果0.30000000000000004

  • 不确定尾数一般发生在10-16左右,可以用round(x,d)来辅助浮点数之间的运算,对x四舍五入,d是小数截取位数。

  • 浮点数可以用科学计数法表示,4.3e-3表示4.3*10-3

数值运算操作符

//

下面是一段C语言代码

  1. int a = 10, b = 3;
  2. printf("%lf", a / b);

打印出来的结果将是3.00000

而在Python中

  1. a = 10
  2. b = 3
  3. print(a/b)

会打印出3.3333333333333335

在Python中如果想实现C语言里面这种整数除,要用到双除号//

  1. print(10//3)

打印出3

**

双乘号表示幂运算

  1. 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个或多个字符组成的有序字符序列

字符串的表示

  • 字符串由''或者""表示

  • 由一对三单引号'''表示多行字符串

如果要在字符串中表示单引号,可以用双引号来创建

  1. str = '''python
  2. nb'''
  3. print(str)
  1. str = "这是一个单引号(')"

如果要在字符串中表示双引号,同理可以用单引号来创建

  1. str = '这是一个双引号(")'

如果既要表示单引号又要表示双引号,可以用三单引号来表示

  1. str = '''这是一个单引号('),这是一个双引号(")'''

字符串的序号

正向递增序号:和C语言一致。

反向递减序号:最后一个字符为-1,倒数第二个是-2,以此类推。

注意,Python字符串按序号取出来的“字符”不能更改,这一点是和C语言不一样的。

字符串使用

切片:返回字符串中的一段字符子串

  1. str[M:N:K]

M缺失:从第一个位置开始

N缺失:一直到结尾

K:根据步长K对字符串进行切片

  1. str = "0123456789"
  2. print(str[::2])

打印结果是:02468

逆序技巧:使用切片,省略M和N,K = -1

  1. str = "0123456789"
  2. 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被分隔的部分组成
  1. str = "A,B,C"
  2. print(str.split(','))

打印输出['A', 'B', 'C']

  • str.count(sub)返回子串substr中出现的次数
  1. str = "yuriyuri"
  2. print(str.count("y"))

打印出2

  • str.replace(old, new),把str中所有old子串,替换为new
  1. str = "papp"
  2. print(str.replace("ap","AP"))
  • str.center(width[,fillchar]),根据宽度width居中,fillchar省略为空

    1. str = "PLAAF"
    2. print(str.center(20,"="))

打印结果为

  1. =======PLAAF========
  • str.strip(chars)str中去除其左侧和右侧chars中列出的字符
  1. str = "lanlanlu"
  2. print(str.strip("la"))

打印出nlanlu,最左侧的la被去掉了,而中间的不受影响。

  • str.join(iter),这个函数用法比较不同,iter是将要被切开的字符串,而str是切开后填充进去的分隔字符串,在每个元素之后(除最后一个位置)填充
  1. str = "ChaoWeiLaanMao"
  2. print(str.join(",,"))

打印结果是,ChaoWeiLaanMao,

  1. str = ","
  2. print(str.join("ChaoWeiLanMao"))

这样才是对的。打印C,h,a,o,W,e,i,L,a,n,M,a,o

字符串类型的格式化

使用.format()方法

槽:用{}表示,槽的顺序默认情况下是从左到右和format对应的

  1. print("{}/{}/{}".format("2021","10","8"))

打印出2021/10/8

也可以在槽中填写数字

  1. print("{1}/{2}/{0}".format("2021","10","8"))

打印出10/8/2021

format()方法的格式控制

下列代码和之前的str.center()的效果是一样的

  1. print("{:=^20}".format("PLAAF"))
: = ^ 20
引导符号 用于填充的字符 居中对齐 槽设定的输出宽度

对齐部分

< 表示左对齐

> 表示右对齐

  1. 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中处理时间的标准库

  • 计算机时间的表达
  • 提供获取系统时间并格式化输出功能
  • 提供系统级精确计时功能,用于程序性能分析
  1. import time

time库包括三类函数

时间获取

time()

  1. import time
  2. print(time.time())

获取当前时间戳,得到一个浮点数,该值是自1970年1月1日00:00开始计时

ctime()

  1. import time
  2. print(time.ctime())

打印出来Fri Oct 8 17:00:21 2021

获取当前时间,返回人类能看懂的字符串

gmtime()

  1. import time
  2. 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()

  1. import time
  2. t = time.gmtime()
  3. 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是格式化模板字符串

  1. import time
  2. timestr = time.ctime()
  3. print(time.strptime(timestr,"%a %b %d %H:%M:%S %Y"))

程序计时

sleep(s)

让程序休眠,单位是秒

perf_counter()

返回一个CPU级别的精确时间计数值,单位为秒

这个返回值是没有固定起点的,要连续调用算差值才有意义

  1. import time
  2. start = time.perf_counter()
  3. print(start)
  4. for i in range(3**15):
  5. i = i + 1
  6. end = time.perf_counter()
  7. print(end)
  8. 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. 实例说明C++的virtual function的作用以及内部工作机制初探

    C++为何要引入virtual function? 来看一个基类的实现: 1 class CBase 2 { 3 public: 4 CBase(int id) : m_nId(id), m_pBas ...

  2. WebService学习总结(六)--CXF 与Spring结合+tomcat发布

    该项目在上文   WebService学习总结(四)--基于CXF的服务端开发  的基础上修改为spring上发布的webservice接口 1.新建web project 工程 2.导入spring ...

  3. Djangoform组件——ModelForm的基本使用

    from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...

  4. adb 常用命令大全(1)- 汇总

    adb 常用命令大全系列 基础命令 查看手机设备信息 应用管理 日志相关 模拟按键输入 其他实用功能

  5. SpringMVC-初见

    目录 什么是SpringMVC? DispatcherServlet 第一个MVC程序 配置版 Maven可能存在资源过滤的问题 注解版 RestFul和控制器 实现Controller接口 使用注解 ...

  6. Java基础之代理模式

    代理模式是常见的设计模式之一,意图在为指定对象提供一种代理以控制对这个对象的访问.Java中的代理分为动态代理和静态代理,动态代理在Java中的应用比较广泛,比如Spring的AOP实现.远程RPC调 ...

  7. https://www.cnblogs.com/spec-dog/p/11161744.html

    转自:https://www.cnblogs.com/spec-dog/p/11161744.html 在软件项目研发管理过程中,是否经常出现这样的场景:开发人员不知道什么时候转测:项目经理拿个Exc ...

  8. wpf内存泄漏问题

    http://www.cnblogs.com/Cindys/archive/2012/05/17/2505893.html http://blogs.msdn.com/b/jgoldb/archive ...

  9. python中字典按键、值进行排序

    看到排序,就不禁想起python中的sort和sorted sort是列表中的方法,用于对列表进行排序(改变的是原列表,不返回新列表) 用法: list.sort(key=None,reverse=T ...

  10. 求 10000 以内 n 的阶乘

    求 10000以内 n 的阶乘. 输入格式 只有一行输入,整数 n(0≤n≤10000) 输出格式 一行,即 n!的值. 输出时每行末尾的多余空格,不影响答案正确性 样例输入 100 样例输出 933 ...