运算
+、-、*、/四则运算;**、//、%分别是乘方、乘除、取模。
有一些比较运算符和位运算符,特别地,python中的布尔运算符使用的是英文单词,仍然是短路运算符。
注:布尔运算的值是True、False。
同样,运算符有优先级和结合性,使用括号改变运算顺序。
关于字符串
+和*有着一些其他的功能:
1 | s1 = "a" |
输出结果:1
2ab
aaa
控制流
一共有三种:if、whlie、for。
if
1 | num = 56 |
注:每个语句后都有冒号;时刻使用缩进控制代码块。
注2:没有switch语句。
单行的语句
可以不需要缩进在一行完成,如果只有一个句子。
1 | if num > 10: print("{0}比10大".format(num)) |
whlie
注:while也有else语句。
1 | num = 8 |
这里无论num是不是0,运算结束都会被输出。
for
注:for是在一个序列中枚举。
它也有else语句。
1 | for i in range(0, 5): |
注意这里的for i in range(0, 5)与C/C++的for (int i = 0; i < 5; i++)相同。
使用list()输出序列:
1 | print(list(range(0, 5))) |
range()第三个参数是数字间隔,输出:
1 | [0, 1, 2, 3, 4] |
break和continue
跳出和跳过循环。
1 | num = 97 |
函数
内置的函数range()、list()。
自定义可以使用def:
1 | def say(word, times = 1): |
其中的times有默认值,在调用方法时可以省略,这样的参数必须放在最后。
输入参数时也可以不按照顺序,但是当出现一个指明名称的参数输入时,后面的参数必须也这样输入。
global
global可以声明全局变量。
1 | def changeX(): |
输出是:
1 | 0 0 |
这里的global x使得变量变为了全局变量,而y的作用于仅仅是函数内部(并且覆盖了另一个y)。
可变参数
1 | def total(a, *num_list, **map_list): |
用*收集的是元组,而**是字典。
注:传参的顺序不能更改,即:`a, *num_list, map_list`。**
return
返回参数会自动结束函数,None代表不反回任何值。
注:每个函数最后都会有return None语句。
注2:pass代表什么也不做的语句块。
函数也是对象
1 | def hi(): |
这里的greet已经是是一个函数,即使删掉hi它仍然存在。
这意味着函数还可以被作为参数返回。
1 | def ani(name = "dog"): |
甚至函数可以直接作为参数传入另一个函数。
DocStrings
在函数定义后的第一个字符串就是它的说明,是这个函数对象的__doc__属性。
1 | def isPri(x): |
这里的函数是对象。