Python学习中的一些注意事项(1)

本文总结了Python学习中的一些常见错误和易混淆知识点,包括input()函数的类型转换,==与is的区别,print()的输出方式,三目运算符的使用,运算符优先级和结合性,以及序列、列表、元组、字典和集合的基本概念和操作。通过理解这些知识点,有助于提升Python编程的准确性和效率。
摘要由CSDN通过智能技术生成

我在学习python中遇到了一些错误或说是容易混淆的知识点,列举如下:

(1)input()函数输入的不管是字符还是整数,小数,最终得到的都是字符类型的数值,也就是说,当输入数值类型的字符,并且该字符需要参与计算时,需要将该字符转换成整数或者小数类型的数值;

age = int(input("请输入年龄:"))

(2)==和is两个比较运算符是不同的,==判断的是两个数据值是否相同,而is判断的则是两个数据内存地址是否相同;同样的,!=和not is 也是上述的意思。

(3)print()在输出数据时,可以一次输出多个数值,数据与数值之间可以通过设置sep来实现分割,默认情况下是空格。

(4)三目运算符如下:exp1 if contion else exp2,condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。并没有C++等编程语言的?:如计算两个数值中的最大值,则可以写成如下程序:

max=a if a>b else b

(5)Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:hou

max=a if a>b else b if b>10 else 12

 后面的部分就相当于于:

max=a if a>b else b (if b>10 else 12)

(6) Python三目运算符还可以用到输出函数中,如下述代码:

print("max=");
print(a) if a>b else print(b) if b>10 else print(12)

可以发现,上述代码就相当于在原来的(5)基础上,在表达式上增加了print而已,其本质上仍然是一样的,即是:

 exp1 if contion else exp2

(7)当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。

(8)不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用括号( )来控制表达式的执行顺序。

(9)Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。

(10)Python 序列(Sequence)是按照特定的顺序依次排列的一组数据,这些数据既可以是数值类型,也可以是字符串类型,可以是任何类型。这些数据可以占用一块连续的内存,也可以分散到多块内存中。Python 中的序列类型包括字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。

(11)列表(list)和元组(tuple)比较相似,它们都按顺序保存元素,所有的元素占用一块连续的内存,每个元素都有自己的索引,因此列表和元组的元素都可以通过索引(index)来访问。它们的区别在于:列表是可以修改的,而元组是不可修改的。

 字典(dict)和集合(set)存储的数据都是无序的,每份元素占用不同的内存,其中字典元素以 key-value 的形式保存。

(12)除此之外,Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如下图中所示。

(13)切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列。

切片的语法命令如下:sname[start : end : step]  

其中,各个参数的含义分别是:

sname:表示序列的名称;

start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;

end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;

step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。

str1=“hello world,Python!”
print(str1[:3];  #输出开始到第五个字符
print(str1[2:];  #输出第二个字符开始后的字符
print(str1[:];   #输出全部字符,也就是说整个字符串
print(str1[2:5:2];#输出字符串从左第二个到第五个,且间隔两个字符

(14)Python 中,支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。

(15)Python 中,使用数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果。尤其需要说明的是,列表类型在进行乘法运算时,还可以实现初始化指定长度列表的功能。

(16)Python 中,可以使用 in 关键字检查某元素是否为序列的成员,其语法格式为: value in sequence;

和 in 关键字用法相同,但功能恰好相反的,还有 not in 关键字,它用法检查某个元素是否不包含在指定的序列中。

(17)python序列中的一些函数,(此表来自python教程)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱听雨声的北方汉

你的鼓励是我努力前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值