Python3初学问题总结

1.注意浮点除法'/'和整数除法'//' 的区别
2.注意整数除法与c语言的区别,c语言是向0取整,python是向下取整:
先用浮点除法python计算5➗3的精确值:

>>> 5/3
1.6666666666666667
>>> -5/3
-1.6666666666666667

c语言整数除法:

5 / 3    //1
-5 / 3    //-1

python整数除法:

>>> 5 // 3
1
>>> -5 // 3
-2

由此可得结论,对于正数的整数除法,python与c的结果一样;对于负数则不一样。

3.注意取模运算python与c语言的区别:
具体分析:
c语言:

5 % 3 = 2
-5 % 3 = -2

python:

5 % 3 = 2
-5 % 3 = 1

发现c语言和py中,-5对3取模,结果分别为-2和1。这两种结果都对,因为

-5 = 3 * (-1) + (-2)
-5 = 3 * (-2) + 1  #由于py向下取整,因此-5/3结果为-2

总结:对于正数,py与c语言取模结果一样;对于负数则不一样,一般c语言取模为负数,py为正

4.list和tuple的双冒号切片:
s[i:j:k]表示:切片第从ij,间隔为1k

10以内的数,默认从开始到末尾,且间隔为1

>>> range(10)[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

20以内的数,从第1到第18号,间隔为3

扫描二维码关注公众号,回复: 153964 查看本文章
>>> range(20)[1:18:3]
[1, 4, 7, 10, 13, 16]

k为负数,表示反向

>>> range(10)[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

k为-2,表示从0号开始,反向每2个元素取一个(第一个是0,第二个是9,第三个是8,第四个是7,以此类推……)

>>> range(10)[::-2]
[9, 7, 5, 3, 1]

注意:使用负数间隔时,若要自己指定起始范围,则范围应该也是反向的。
如:20以内的数,从10号开始,到0号结束,每次间隔为2

>>> range(20)[10:0:-2]
[10, 8, 6, 4, 2]

若范围与间隔不匹配,取到的切片为空

>>> range(20)[0:10:-2]  #范围是正向,而间隔反向,取不到
[]

5.逻辑运算符与c语言不同
c语言中与、或、非分别为&&||!
而py中为andornot
其他的比如==, >>= ,!=比较运算符相同

猜你喜欢

转载自blog.csdn.net/u012033124/article/details/80224024