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. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用


相关文章
|
1天前
|
JavaScript 关系型数据库 MySQL
Python实战:从猎聘网获取职位信息并存入数据库
Python实战:从猎聘网获取职位信息并存入数据库
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
Python自然语言处理实战:文本分类与情感分析
本文探讨了自然语言处理中的文本分类和情感分析技术,阐述了基本概念、流程,并通过Python示例展示了Scikit-learn和transformers库的应用。面对多义性理解等挑战,研究者正探索跨域适应、上下文理解和多模态融合等方法。随着深度学习的发展,这些技术将持续推动人机交互的进步。
11 1
|
2天前
|
Python
Python编程实战:如何将列表组装成一棵树结构
本文介绍了如何在Python中将列表转换为树结构。首先定义`TreeNode`类表示节点,包含值和子节点列表。然后,通过`list_to_tree`函数递归地将列表转为树。此外,还提供了添加和删除节点的方法。文章旨在帮助读者理解和操作树结构,以解决实际编程问题。
Python编程实战:如何将列表组装成一棵树结构
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
好书推荐丨AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀
好书推荐丨AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀
12 2
|
2天前
|
开发者 Python
入门实战丨Python小游戏经典案例
入门实战丨Python小游戏经典案例
10 4
|
人工智能 供应链 前端开发
【精品问答】Python实战100例 | 技术日报(16期)
【精品问答】Python实战100例,确定不mark吗?还有云计算招聘岗位全方位需求解析+学习路径指南精彩直播,对云计算感兴趣的高校生、职场新人看过来~
512 0
|
1天前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。
|
1天前
|
机器学习/深度学习 人工智能 算法
|
2天前
|
网络协议 数据库 Python
Python高级编程:你的代码,为何总是“撩”不到那个TA的心?
【6月更文挑战第11天】Python高级编程重在提升编程思维和方法,包括关注代码的可读性、可维护性和性能。要让代码“撩”到期望的效果,需注意整体架构设计,使用有意义的命名和注释,模块化代码。利用timeit测试性能,借助内置数据类型和算法库优化。示例代码展示了列表推导式和内置函数的高效应用。通过提升这些方面,实现业务需求、性能优化和团队协作的目标。
|
3天前
|
存储 Unix Linux