Python语法易混淆
Python语法易混淆
这一篇负责记录学习python基础语法时遇到的一些易混淆点,以及与C++语法不同的表达。
字符串
- Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[m:n]
# m为截取开始位置的字符编号
# n为从第一个字符开始数需要截取到第n个字符(包括第n个字符)
'''
str = "abcde"
str[0:3] 输出:abc
str[1:3] 输出:bc
'''
列表List
lt = [];
元组tuple
- 列表使用方括号[],元组使用圆括号()
- 元组中只包含一个元素时,需要在元素后面添加逗号 “,”,否则括号会被当作运算符使用。
tup = (50,)
- 元组内部元素不能修改,列表内部元素可以修改
- 元组不可变指的是元组所指向的内存中的内容不可变。
tup = (1,2,3)
print(id(tup)) # 输出1442507590592
tup = ('a','b','c')
print(id(tup)) # 输出1442507590784
# 从以上实例可以看出,重新赋值的tup,被绑定到新的对象了,而不是说修改了原来的对象
字典dict
- 字典创建方式:
d = {key1:val1, key2:val2}
emptyd1 = {} # 创建空字典
emptyd2 = dict() #内置dict()函数也可创建空字典
- 字典value可以是任何python对象,包括用户定义的
- key必须不可变,所以可以用数字,字符串或者元组充当,但是列表不行,因为列表可变
- 同一个key只能出现一次,如果同一个key被赋值两次,那么只记住后一个值
集合set
- 集合set是一个无序不重复元素序列
st1 = {val1,val2,val3}
st2 = set(val)
- 创建一个空集合必须有set()而不是{},因为{}是创建一个空字典
循环语句
while循环使用else语句
当while后面的condition为FALSE时,执行else里面的additional_statement。
while (condition):statement
else:additional_statement
循环中的else语句
循环语句中可以有else子句,它在for循环穷尽 或 while循环为FALSE时 ,导致循环终止时,执行else语句。但当循环被break终止时不执行else。
range()函数
如果需要遍历数字序列,可以使用内置range()函数生成数列。
for i in range(3):print(i)
'''
输出:
0
1
2
'''#也可以使用range指定区间的值
for i in range(1,3):print(i)
'''
输出:
1
2
'''# 使用range指定数字和不同的步长
for i in range(0,10,3)print(i)
'''
输出:
0
3
6
9
'''# 使用rang()和len()遍历一个序列的索引
l = ['a','b','c','d']
for i in range(len(l)):print(i,l[i])
'''
输出:
0 a
1 b
2 c
3 d
'''
迭代器
- 迭代器有两个基本方法:iter()和next()
- 迭代器对象可以使用for进行遍历
lt = [1,2,3,4]
it = iter(lt)
for i in it:print(i,end = " ")
# 输出“1 2 3 4#也可以使用next()函数
ir = iter(lt)
while True:try:print(next(ir)) # next()方法初始值为1,逐步递增1,返回下一个迭代器对象except StopIteration:sys.exit()
函数
定义函数语法
def 函数名(参数列表):函数体
参数传递
可变和不可变对象
python函数的参数传递:
- 不可变类型:类似于CPP的值传递,如不可变的对象(整数,字符串,元组)。如fun(a),传递的只是a的值,没有影响a本身,如果在函数内部修改a的值,则是生成一个新的a的对象。
# 传不可变对象实例
def change(a):print(id(a))a = 2print(id(a))a = 1
print(id(a))
change(a) '''
输出
2325841838320
2325841838320 调用函数前后,形参和实参指向的是同一个对象,id相同
2325841838352 在函数内部修改形参以后,形参指向了不同的id
'''
- 可变类型:类似于CPP中的引用传递,如列表,字典。fun(la),则是将真正的la传递过去,如果函数内部修改了la,外部的la也会变化。
# 传可变对象实例
def change(lt):lt.append([1,2,3])print("函数内取值:",lt)lt = ['a','b','c']
change(lt)
print("函数外取值:",lt)
'''
output:
函数内取值: ['a', 'b', 'c', [1, 2, 3]]
函数外取值: ['a', 'b', 'c', [1, 2, 3]]
传入函数的形参在末尾添加新内容的对象 和 外部的实参是同一个引用,所以内部修改了外面也变化了
'''
遍历技巧
- 字典遍历时,key和val可以使用items()方法同时解读出来
dc = {'name':'wolai','age':25}
for k,v in dc.items():print(k,v)
- 序列遍历是,索引位置和对应的值可以使用enumerate()函数同时得到
异常处理
try/except
try/except…else
try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。else 子句将在 try 子句没有发生任何异常的时候执行。
try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。
抛出异常
Python 使用 raise 语句抛出一个指定的异常。
x = 10
if x > 5:raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
Python语法易混淆相关推荐
- 记录在学习python中易混淆的知识点
这里写目录标题 列表 元组 Python中的*args和**kwargs 具有两个以上维度的数据帧切片 列表 访问列表中的列表元素: list = [123,['hello','world'],456 ...
- python语法教程-Python语法教程总结规范
Python语法易错点记录 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心 ...
- Python+Pycharm和 VisualStudio C++社区版使用PK及易混淆的语法问题
这2年都是在用Python,使用环境要么是Python的IDLE+UE,要么使用Pycharm,近年来基本上都是使用的Pycharm.期间偶尔阅读一下C++的代码,但一直没安装相关编译器. 近来为了研 ...
- python编程基础(四):编程习惯、代码规范、易混淆之处
目录 编程习惯 代码规范 python中self的作用 易混淆之处 编程习惯 1. 添加主函数if __name__ == 'main': 2. 使用project_path = os.getcwd( ...
- python语法详解大全_笔记:Python 语法要点汇总
Python 是一门解释型语言,无需编译和链接 Python 解释器 交互模式 脚本模式 源码编码 默认情况下,Python 源文件是 UTF-8 编码 指定源文件的字符编码 # -*- coding ...
- python语法错误概述_python语法错误
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我是python中的新手,当我想在模块中编译代码时,我遇到语法错误:invail ...
- python编程语法大全-python语法汇总
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. splitstriplen()for variable in range ...
- JAVA WEB部分易混淆问题总结
2019独角兽企业重金招聘Python工程师标准>>> 前言 最近在看了一些java基础问题,顺便将这段时间看到的容易混淆和已忘记的问题进行整理总结一下. 接下来会再写一些数据库方面 ...
- [Python+sklearn] 计算混淆矩阵 confusion_matrix()函数
python sklearn 计算混淆矩阵 confusion_matrix()函数 参考sklearn官方文档:sklearn.metrics.confusion_matrix. 功能: 计算混淆矩 ...
最新文章
- Sql中的递归问题-思考与建议
- for循环 消耗时间计算
- hibernate之主键生成策略
- PL/pgSQL的anyelement例子
- VS2015 无法启动 IIS服务器
- 如何美化linux终端输出
- tensorflow的tf.transpose()简单使用
- C++ deque 底层原理及 queue、stack 容器的使用详解
- 语义分割深度学习方法集锦
- primefaces_懒惰的JSF Primefaces数据表分页–第2部分
- jeesite使用心得(一)
- php抽象类初始化方法,php – 抽象类方法声明
- JAVA总结实录01 : 异常处理 try-catch-finally
- java 获取jboss路径_java中获取文件路径的几种方式
- c语言怎么调用fork函数,C语言编程创建函数fork() 执行解析.pdf
- html中http502怎么解决,Http Error 502 解决方法
- linux centos7 docker 安装nginx 使用宿主机配置文件
- Surface Pro 6 黑苹果 CLOVER 配置文件,全球首发(转载)
- 使用Certbot配置SSL证书【ubuntu系统】
- 大数据工程师和数据分析师有什么区别