Python基础语法详尽总结和实战(一)

简介: Python基础语法详尽总结和实战

数据类型

 

算术运算符

逻辑运算符

以下假设变量 a 为 10, b为 20:

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 Fal

字符串内建函数

字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。

这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。

方法 描述

string.capitalize()

把字符串的第一个字符大写

string.center(width)

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

string.count(str, beg=0, end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

string.decode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace'

string.encode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

string.endswith(obj, beg=0, end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

string.expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。

string.find(str, beg=0, end=len(string))

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

string.format()

格式化字符串

string.index(str, beg=0, end=len(string))

跟find()方法一样,只不过如果str不在 string中会报一个异常.

string.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返

回 True,否则返回 False

string.isalpha()

如果 string 至少有一个字符并且所有字符都是字母则返回 True,

否则返回 False

string.isdecimal()

如果 string 只包含十进制数字则返回 True 否则返回 False.

string.isdigit()

如果 string 只包含数字则返回 True 否则返回 False.

string.islower()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

string.isnumeric()

如果 string 中只包含数字字符,则返回 True,否则返回 False

string.isspace()

如果 string 中只包含空格,则返回 True,否则返回 False.

string.istitle()

如果 string 是标题化的(见 title())则返回 True,否则返回 False

string.isupper()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

string.join(seq)

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

string.ljust(width)

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

string.lower()

转换 string 中所有大写字符为小写.

string.lstrip()

截掉 string 左边的空格

string.maketrans(intab, outtab])

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

string.partition(str)

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

string.replace(str1, str2,  num=string.count(str1))

把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

string.rfind(str, beg=0,end=len(string) )

类似于 find()函数,不过是从右边开始查找.

string.rindex( str, beg=0,end=len(string))

类似于 index(),不过是从右边开始.

string.rjust(width)

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

string.rpartition(str)

类似于 partition()函数,不过是从右边开始查找

string.rstrip()

删除 string 字符串末尾的空格.

string.split(str="", num=string.count(str))

以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+ 个子字符串

string.splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

string.startswith(obj, beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.

string.strip([obj])

在 string 上执行 lstrip()和 rstrip()

string.swapcase()

翻转 string 中的大小写

string.title()

返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

string.translate(str, del="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符,

要过滤掉的字符放到 del 参数中

string.upper()

转换 string 中的小写字母为大写

string.zfill(width)

返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0

常用函数

1 数学函数
1.1 abs()函数——获取绝对值
1.2 divmod()函数——获取商和余数的元组
1.3 sum()函数——求和
1.4 round()函数——保留n位小数,四舍五入
1.5 pow()函数——求指数运算
1.6 min()函数——求最小值
1.7 max()函数——求最大值
2 数据转换函数
2.1 hex()函数——转化为十六进制(0x)
2.2 oct()函数——转化为八进制(0o)
2.3 bin()函数——转化为二进制(0b)
2.4 int()函数——转化为int类型
2.5 float()函数——转化为浮点类型
2.6 str()函数——转化为str类型
2.7 bool()函数——转化为bool类型
2.8 ord()函数——获取ASCII或者Unicode
2.9 chr()函数——获取数组对应的字符
2.10 tuple()函数——转化为元组
2.11 list()函数——转化为列表类型
2.12 set()函数——转化为集合类型
2.13 complex()函数——转化为复数形式
3 对象创建函数
3.1 range()函数——创建列表
3.2 set()函数——创建无序集合
4 迭代器操作函数
4.1 all()函数——判断序列是否全为True
4.2 any()函数——判断序列是否全为False
4.3 iter()函数——生成迭代器
4.4 sorted()函数——排序
4.5 enumerate()函数——组合数据对象为带有数据和数据下标的索引序列
4.6 filter()函数——指定过滤条件进行筛选
4.7 map()函数——自定义函数实现元素映射操作
4.8 reversed()函数——逆序
5 对象操作函数
5.1 id()函数——获取对象内存地址
5.2 eval()函数——执行一个字符串表达式并返回结果
5.3 exec()函数——执行字符串或者文件中的语句
5.4 type()函数——获取对象类型
6 字符串函数

变量作用域

"""
    变量作用域
"""
g1 = 'one'
def func():
    g1 = 'one piece'
    global g2
    g2 = 'two piece'
    print("In func():", g1)
    print("In func():", g2)
    print("inside : id(g1) = %s" %(id(g1)))
    print("inside : id(g2) = %s" %(id(g2)))
g2 = 'two'
func()
print("g1 = ", g1)
print("g2 = ", g2)
print("outside: id(g1) = %s" %(id(g1)))
print("outside: id(g2) = %s" %(id(g2)))
结果:
In func(): one piece
In func(): two piece
inside : id(g1) = 3143475102704
inside : id(g2) = 3143475102768
g1 =  one
g2 =  two piece
outside: id(g1) = 3143472021608
outside: id(g2) = 3143475102768

列表

二维列表

a = [
["高小一",18,30000,"北京"],
["高小二",19,20000,"上海"],
["高小一",20,10000,"深圳"],
]
for m in range(3):
   for n in range(4):
     print(a[m][n],end="\t")
     print() #打印完一行,换行

练习

''' 有一个列表a[],里面有若干个整数未知。 我希望将里面的整数两两做差( 即a[1]-
 a[0],a[3]-a[2]....) , 并将得数保存在另一个列表b[]中, 请问如何实现
'''
a = [10,20,30,40,50,60,70,80,90,100]
b = []
l = len(a)//2
for i in range(l):
    b.append(a[i*2+1]-a[i*2])
print(b)

元组

元组的创建

1. 通过()创建元组。小括号可以省略。

a = (10,20,30) 或者 a = 10,20,30

如果元组只有一个元素, 则必须后面加逗号。 这是因为解释器会把(1)解释为整数 1, (1,)解释为元组。

>>> a = (1)
>>> type(a)
<class 'int'>
>>> a = (1,) #或者 a = 1,
>>> type(a)
<class 'tuple'>

2. 通过 tuple()创建元组

tuple(可迭代的对象)

例如:

b = tuple() #创建一个空元组对象
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])

元组的访问

1.元组的元素访问和列表一样,只不过返回的仍然是元组对象。

>>> a = (20,10,30,9,8)
>>> a[1]
10
>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10, 30, 9)

 

2. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。

 

>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]

元组总结

1. 元组的元素不能修改

2. 元组的访问和处理速度比列表快。

3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用


目录
相关文章
|
4月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
574 7
|
4月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
4月前
|
存储 数据采集 监控
Python文件操作全攻略:从基础到高级实战
本文系统讲解Python文件操作核心技巧,涵盖基础读写、指针控制、异常处理及大文件分块处理等实战场景。结合日志分析、CSV清洗等案例,助你高效掌握文本与二进制文件处理,提升程序健壮性与开发效率。(238字)
456 1
|
4月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
453 0
|
4月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
520 0
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
Python
Python的高级语法及许多特性
Python的高级语法及许多特性
246 0
|
Python
【Python高级语法】——匿名函数(lambda)
匿名函数lambda:顾名思义,没有名字的函数,可以将其赋值给一个变量。
213 0
【Python高级语法】——匿名函数(lambda)

推荐镜像

更多