python的语法比较简单,采用缩进形式,如下:
在这里# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)插入代码片
以“#”开头的语句是注释。
注意:python是大小写敏感的,如果先写错了大小写,程序会报错。
一、输入与输出
1.输出
print()在括号中加上字符串(加双引号)、整数等,就可以输出指定的内容。如:print(“hello, world”)。
此外,print()函数还可以接受多个字符串,用逗号隔开,就可以连成一串输出,print()会依次打印每个字符串,遇到逗号会输出一个空格。
2.输入
使用input()函数,例如:
注意:input()还可以使用提示字,不过这是默认输入的数据的类型是字符串(str)。(数据类型后面讲解)
二、数据类型
1.整数
python可以处理任意大小的整数。对于很大的数,例如10000000000,很难数清0的个数,python允许在数字中间以“_”分割,写成10_000_000_000和10000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4.
2.浮点数
3.字符串
字符串可以是用单引号或双引号括起来的任意文本。字符串中本身包括单引号或双引号使用转义字符""来标识。python还允许用字母r表示字符串默认不转义,例如:
4.布尔值
python中用True和False表示布尔值(注意大小写)。
布尔值可以用and、or和not运算。
5.空值
python中空值用None表示。None不能理解为0,因为0是无意义的,而None是一个特殊的空值。
注意:python是动态语言,变量本身类型不固定,在定义变量时不需要指定变量类型。
6.list
python中内置的一种数据类型是列表list.list是一种有序的集合,可以随时添加和删除其中的元素。
例如:
(1)变量classmates就是一个list,用len()函数可以获得list元素的个数:
用索引来访问list中每一个位置的元素,记得索引是从0开始的:
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:
(2)往list中加元素,使用append()追加到末尾:
(3)也可以把元素插入到指定的位置,使用insert():
(4)使用pop()删除list末尾的元素或指定位置的元素:
(5)要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
另外:
list里面的元素的数据类型也可以不同,比如:
L = [‘Apple’, 123, True]
list元素也可以是另一个list,比如:
要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:
要拿到’php’可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。
7.tuple
tuple叫元组,也是一种有序列表,但是tuple一旦初始化就不能修改。没有append(),insert()这样的方法,其他获取元素的方法和list是一样的。
8.dict
dict全程dictionary,在其他语言中也成为map。
默认情况下,dict迭代的是key。例如:
如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。
9.set
set是集合,不能有重复的元素,元素无序。
三、条件判断
格式:
在这里插if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>入代码片
注:elif是else if 的缩写。不要缺少冒号。
四、循环
(1)for … in 循环
在这里names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)插入代码片
执行这段代码,会依次打印names的每一个元素。
(2)while循环
格式:
while <条件判断> :
<执行1>
补:break和continue在python中的作用与在其它编程语言中一致。
五、函数
python中内置了很多有用的函数,可以直接从python的官方网站查看文档来了解函数的用法,也可以在交互式命令行通过help(函数名)来查看指定函数的帮助信息。
1.定义函数
(1)格式:
def <函数名>(参数):
<执行1>
例如:
def my_abs(x):
if x >= 0:
return x
else:
return -x
(2)如果想定义一个什么事也不做的空函数,可以用pass语句,pass语句什么也不做,可以用来作为占位符,比如现在还没有想好怎么写函数的代码,就先放一个pass,让代码能运行起来。pass也可放在其他语句里如条件判断语句、循环语句等。
(3)函数可以有多个返回值。
例如:
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
但其实这只是一种假象,Python函数返回的仍然是单一值:
原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
2.函数的参数
(1)默认参数
默认参数可以理解为缺省参数。
例如:
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
这样,当我们调用power(5)时,相当于调用power(5, 2),而对于n > 2的其他情况,就必须明确地传入n,比如power(5, 3)。
注意:必选参数在前,默认参数在后,否则Python的解释器会报错。
默认参数有个最大的坑:
def add_end(L=[]):
L.append('END')
return L
当你使用默认参数调用时,一开始结果也是对的:
但是,再次调用add_end()时,结果就不对了:
原因解释如下:
Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
定义默认参数要牢记一点:默认参数必须指向不变对象!
要修改上面的例子,我们可以用None这个不变对象来实现:
def add_end(L=None):
if L is None:
L = []
L.append('END')
return L
2.可变参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。
定义可变参数时在参数前面加一个*号。在函数内部,接收到的是一个tuple。
例如:
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
如果已经有一个list或者tuple,Python允许在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:
*nums表示把nums这个list的所有元素作为可变参数传进去。
当然也可写成:
3.关键字参数