Python基础(一)基本类型

news2024/11/25 12:35:46

一、Number数字

1.1 注意事项

Python支持intfloatboolcomplex类型。

complex是复数类型a+bj(或complex(a,b)),a表示实部,b表示虚部,a b本身是float类型。

Python使用变量时,无需声明变量。

a=3 # 自动声明为int
b=3.4 # 自动声明为float
a=3/4 # a的数据类型从int改成了float

Python除法/总是返回一个浮点数,如果你想只返回整数部分,请使用//

7//2 # 返回3
7.0//2 # 返回3.0

Python支持幂运算:

5**2 # 5^2

Tips:在交互模式,和matlab一样的ans用下划线代替_

1.2 数学函数

内置函数含义
abs(x)绝对值
max(x1,x2,…xn)最大值
min(x1,x2,…xn)最小值
round(x,[n=0])四舍五入小数点n位
math扩展含义
ceil(x)不小于x的最小整数
floor(x)不大于x的最小整数
fabs(x)绝对值
log(x[, base=e])base为底的对数
log2(x)2为底的x对数
log10(x)10为底的x对数
sqrt(x)平方根
(小数,整数)=modf(x)整数和小数部分
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(y,x)反正切
cos(x)余弦
sin(x)正弦
tan(x)正切
degrees(x)弧度转角度
radians(x)角度转弧度
pi圆周率
e自然数e

1

math库中还有其他的函数,需要时可以查阅:https://docs.python.org/3/library/math.html

random扩展含义
choice(seq)从序列中随机选择一个元素
randrang([start] stop [,step=1])生成的range中选择一个元素
random()随机生成一个实数,范围[0,1)
seed([x])随机种子
shuffle(lst)打乱序列
uniform(x,y)[x,y]随机实数

二、字符串

2.1 注意事项

Python有字符串型但是没有字符型。定义也和大多数语言一样:

var1 = "Hello"
var2 = 'Hello'
var3 = """
这是一个可以
换行的
字符串
"""

上面有三种类型表示字符串内容,分别是单引号、双引号和三引号。如果没有转义单引号双引号都可以,如果有双引号特殊字符,那你用单引号可以不用多双引号进行转义,同理,如果你用单引号,双引号就无需转义[1]。

2.2 运算

操作符含义
+连接符号左右字符串
*重复左字符串
[n]从0开始数第n个
[a:b]区间[a,b)的所有有序字符串
in左字符是真的在右字符串里面吗?
not in左字符是真的不在右字符串里面吗?

重点来看中括号的切片操作:对于字符串,我们用中括号就可以选取:
在这里插入图片描述
和C语言一样下标从0开始。你可以选择某个元素:

str[2] # 结果是n
str[-5] # 结果是u

也可以按范围选取:

str[:] # 全部
str[0:5] # [0,5)部分即Runnoo
str[0:] # 从零开始到最后一个元素下表(也就是6)
str[:6] # [0,5]所有字符

2.3 格式化字符串

格式如下:

"   %格式化符号   %格式化符号" % (数据,数据)

看个具体的例子:

name="Fred"
"Hello %s!"%(name)

复杂一点的有:

name="Fred"
age=2
"Hello %s I am %d year old !"%(name,age)

格式化符号与C语言一致。

2.4

方法含义
capitalize首字母大写
center(width)长度width居中字符串
count(str,beg=0,end=len(string))str在范围内出现的次数
endwith(obj,beg=0,end=len(string))检查字符串是否以obj结尾
expandtabs(tabsize=8)字符串tab符号转为空格
find(str,beg=0,end=len(string))str是否在指定范围内,如果在返回引索,否则-1
format()%[(name)][flags][width].[precision]typecode
index(str,beg=0,end=len(string))str是否在指定范围内,如果在返回引索,否则返回一异常
isalnum()是否为字母后者数字
isalpha()是否为字母或者中文
isdigit()是否为数字
isupper是否全部大写
islower()字母是否都为小写
isnumeric()是否只包含数字
isspace()是否为空格
istitle()是否为标题化的
s1.join(seq)以s1作为分隔的序列合并成一个
#!/usr/bin/python3

s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

三、序列(List)

序列里面,你可以随意放置任何你想要的类型,Python会帮你处理好这些数据的存放。

3.1 索引(Indexing)

在序列中每个元素都有编号,索引(Indexing),从下标1开始,可以是正数也可以是负数。0表示第一个,-1表示最后一个。

a=[1,2,3,4,5,6,7,8] # 如果存放同一个类型,那就和C里面的数组没有什么不一样了
b=['zhangsan',1223,'Beijing'] # 如果存放不同类型,这就是C/C++没有的了(外部库除外)

3.2 切片(Slicing)

切片的意思是把序列的一部分“切”出来。最一般的形式就是:

a=[5,4,46,42,45,62,27,8] 
a[0:2]                  #下标0-2(不含右边)的元素组成的序列
a[-3:-1]                #倒数第三个元素到最后一个
a[-3:]                  #直接省略了-1,默认到最后一个元素
a[:]                    #整个序列,所以为啥我不直接用a?不是更加方便
a[0:-1]                 #下标从0到倒数第一个-1小标, 但是a[-1:0]却没有这样的用法,

一个不怎么常用的操作,就是固定步长抽取序列中的元素:

a[0:-1:1]               #从第一个开始,每隔一个抽取一个元素组成序列
a[8:0:-1]               #从第八个元素开始(不含),从左往右开始,此时步长正负等于方向

3.3 序列相加、相乘

Python通过重载加号实现两个元素的拼接,星号后的数字代表重复多少次。

3.4 None 空列表 和初始化

表示一个什么都没有的值None,一个长度为0的列表a=[]

3.5 in 是否存在

a=[1,2,3,4,5,6,7,8]
print(1 in a) #True

3.6 min max len

最大、最小和长度都是内置的

3.7 list类

list('Hello') #返回元素分别是H e l l o的序列

3.7 切片赋值、等效删除、等效插入、方法删除

a=[1,2,3,4,5,6,7,8]
a[2]=4          # 将第三个元素改成了4
a[2:3]=[99,88]  # 第3、4个元素变成了99 88
a[2:3]=[]       # 等效删除,赋值为空不就行了
a[2:3]=[2,3,99] # 偷偷加了一个99进去

3.8 切片方法

此时,list是一个类,调用方法的符号为.

方法名称含义
append添加到末尾
clear清除所有元素
copy深拷贝
count(ele)统计ele出现了多少次
extend扩展序列
index(ele)返回某个元素的第一次出现的下标
insert(a,b,c,d)插入一些元素,注意元素可以不同类型
pop弹出
remove删除某个元素
reverse反序
sort排序
a=[1,2,3]
b=a
b[1]=4
>>>a
[1,4,3]  # 一般的赋值其实是深拷贝,拷贝的是指针,这一点要注意

注意区分+拼接

a=[1,2,3]
b=[4,5,6]
a+b # 

这个比较实用,C++可要进行遍历,写一堆东西

a=[1,2,3,4,5,6,7,8]
print(a.index(8)) # 打印7

注意sort不会改变原来序列

a=[3,4,1,7]
b=a.sort() # 不行,b和a都指向同一个区域,排序会乱掉
d=[3,3,4,5,5,6,8,7,8,99]

gt4=[ele for ele in d if ele>4]

## 创建
a=[3,4,5,6,7]        # 纯数字
b=['a','b',5,8,'ii'] # 字符和数字混合
c=[a,b,'ddd']        # 嵌套
aa=d[2:5]
aa=[887,888,889]

## 切片是针对序列型对象的一种高级引索的方法,普通的引索只能给出一个对应元素
## 切片是利用精湛的刀工选出自己想要的部分并将其拼在一起
## ref:https://blog.csdn.net/Zombie_QP/article/details/125063501
## 基本语法 序列对象[起点:终点:步长],注意是左闭右开,步长默认为1
## 其中大多数东西都可以省略,如
## d[::] 省略起点终点和步长 d[:] 起点终点步长和冒号,你可以只给起点、终点和步长
## 你可以连续切片,虽然感觉没有什么用 a[0:8][2:5][-1]
## 负数表示倒数第几个
## 切片之后操作的是原序列本身,如果不想这么做,可以拷贝到另一个序列中
## 泛型在list上的应用
## list = [i for i in range(5) if i>3]
## list也有很多内置的方法

[1] https://www.zhihu.com/question/59337505
[2] https://www.runoob.com/python3/python3-string.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序|基于小程序+C#制作一个电子书阅读器

文章目录一、文章前言二、开发流程2.1、开发工具2.2、页面实现2.3、数据库设计2.4、API实现一、文章前言 书籍是人类进步的阶梯,各位小伙伴在使用市面上各类阅读器进行阅读的时候是否有被层出不穷的广告或者及其不友好的用户体验所困扰呢,为何不制作一个…

矢量网络分析仪是什么?矢量网络分析仪的组成

一、矢量网络分析仪是什么 矢量网络分析仪是一款高性能、大动态范围、低噪声的矢量网络分析仪。频率范围涵盖整个移动通信频段,全双端口S参数测量,测量精度高,测试稳定性好,测量速度快。 用途:可广泛应用于移动通信、军…

realme手机适合什么蓝牙耳机?适合realme手机的蓝牙耳机推荐

自从众多手机厂商取消3.5mm耳机接口之后,蓝牙耳机作为人们通勤、旅行时经常携带的设备,realme手机近几年也受到很多人的喜爱,那么在品牌众多的蓝牙耳机中如何挑选出最适合自己的呢?今天小编就来为大家分享几款适合realme手机的蓝牙…

天翼云Serverless边缘容器下沉服务 促进企业聚焦业务创新

当前,我国经济社会各领域正加速向数字化转型迈进,随之涌现出海量的数据处理需求在边缘侧不断产生。根据信通院发布的数据显示,2021年我国边缘计算市场规模已经达到436.4亿元,其中边缘硬件规模市场为290.2亿元,边缘软件与服务市场规模达146.2亿元,年平均增速超过50%,预计2024年边…

包装类和泛型

包装类和泛型严格来说算得上是JavaSE的内容,为什么他们要放在数据集合中? 这和集合类有关,我们在集合类中将会用到大量的泛型和包装类。 1. 包装类 基本介绍 包装类(wrapper)是针对八大基本数据类型相应的引用类型…

云安全系列4:解析云安全工具集

随着组织越来越多地将数据和应用转移到云端,云安全在确保工作负载安全方面变得至关重要。Gartener 就表示:“云优先战略现在已十分普遍,甚至在不愿承担风险的企业机构中也是如此。但由于缺乏确保安全云计算部署所必需的技能和工具&#xff0c…

pytest文档83 - 把收集的 yaml 文件转 Item 用例并运行

前言 上一篇通过用例收集钩子 pytest_collect_file 把 yaml 文件收集起来的,仅仅只是收集到用例,还不能执行。 接下来详细讲解,如何把yaml 文件的内容,转成Item 用例去执行。 pytest_collect_file 收集钩子 准备一个待执行的YA…

Oracle SQL执行计划操作(12)——DDL及DML相关操作

14. DDL及DML相关操作 该类操作与DDL及DML类SQL语句相关。根据不同的具体SQL语句及其他相关因素,如下各操作可能会出现于相关SQL语句的执行计划。另需注意,该类操作会造成数据库对象或数据的改变。 1)CREATE TABLE STATEMENT 创建数据表。该操作出现于通过create[global …

PHP 开发-XAMPP 安装

开发环境:Windows10,XAMPP(x64-7.4.33),Netbeans。 XAMPP 安装 官网下载XAMPP安装包,我下载的版本 x64-7.4.33。安装包中相关软件版本(官网上可查询): Apache 2.4.54M…

Java并发编程--变量可见性、避免指令重排,还得是用它

那怎么保证程序里一个线程对共享变量的修改能立马被其他线程看到了?这时候有人会说了,加锁呀,前面不就是因为加锁成本太高才使用的 ThreadLocal的吗?怎么又说回去了? 其实CPU每个核心也都是有缓存的,今天要…

基于el-form实现自动展开/收起的查询条件组件

说明 如果查询条件过多,影响页面的展示效果,网上看了一些实现自动展开/收起的,有根据最小高度控制的,有基于条件的如v-show来控制,下面借助js原生的hidden属性实现要素的显示、隐藏控制。 先一下效果: 优…

web扫码登录

文章目录需求流程交互流程服务交互流程关键思路代码生成二维码,返回给PC展示轮询查询二维码状态APP扫码请求登录总结需求 pc端实现app扫码登录 流程 交互流程 服务交互流程 关键思路 主要问题在于如何识别APP端用户,然后传递给PC端已经登录成功 通过…

小程序瀑布流实现

什么是瀑布流布局 瀑布流布局,一般等宽,不等高的列表排列 原理是找出高度之和最小的那一列,在高度最小列继续添加元素 可以通过 absolute 定位实现,动态计算每一项的 top 和 left 封装瀑布流方法 function getAllRect(context…

HTML期末作业课程设计期末大作业--小米网站开发者平台首页 1页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制| HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS&#x…

MyBatis学习笔记(2022-11-30)

熬过无人问津的日子才会有诗和远方。 文章目录一、MyBatis简述二、快速入门三、MyBatis配置文件详解1. MyBatis核心配置文件1.1 configuration(配置)1.2 properties(属性)1.3 environments(环境配置)1.4 ty…

vue项目 element UI input框扫码枪扫描过快 出现数据丢失问题(已解决二)

项目需求: 输入框要掉两个接口,根据第一个验证接口返回的code,弹不同的框,点击弹框确认再掉第二个接口 根据客户现场反应,扫描枪快速扫描会出现 料号前几位字符丢失 不完整的问题。于是开始了测试之路。 解决方案探索 1.首先考…

数据可视化,销量第一的新能源汽车是什么?比亚迪新能源汽车销量接近60万辆

去年以来,新能源汽车火热度席卷全球,中国的新能源汽车无论制造或者销售,数量增长迅猛。下面小编用一款数据可视化软件,带你用可视化数据解读高端制造背后,中国新能源汽车的具体销售情况。同样如果你工作上有数据报表需…

[附源码]计算机毕业设计springboot酒店物联网平台系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

全国省市县 经纬度的 json数据(提供原文件),写Java代码,入库(提供代码)

目录 1 需求2 分析1 需求 有一个全国省市县 经纬度的 json数据,我想要使用代码入库 如何操作,代码咋写 2 分析 首先分析json结构, 一般拿到一个json数据,如果最外层不是 { } 包裹的,那么自己手动加一个 以上这个是自己加的,这个就是key 值就是list 集合 分析完json数…

【并发】深入理解Java线程的底层原理

线程基础知识 线程与进程 进程 操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。 线…