优点:
1. 简单,易学,免费,开源
2. 高级语言,解释型语言
3. 可移植性,可拓展性,可读性
4. 面向对象,丰富的库
缺点:
1. 执行效率慢
2. GIL锁限制并发
3. 源代码加密困难
Python的行与缩进
1.缩进
缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系。
一般语句不需要缩进,顶行书写且不留空白。
当表示分支、循环、函数、类等含义,在if,while,for,def,class等保留字所在的完整语句后通过英文冒号(:)结尾,并在之后进行缩进,表示前后代码之间的从属关系。
代码编写中,缩进可以用Tab键实现,也可以用4个空格实现。
Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,缩进不一致会导致代码运行错误。
正确缩进的示例如下:
多行语句
Python 通常是一行写完一条语句,但语句很长的话,可以通过反斜杠(\)来实现多行语句。
weekdays ="Little Robert asked his mother for two cents.\
'What did you do with the money I gave you yesterday?'"
print(weekdays)
这里的输出结果为“Little Robert asked his mother for two cents.'What did you do with the money I gave you yesterday?'”。
等待用户输入
Python 中的 input() 函数是用来与用户进行交互的,如下所示:
此时,运行结果为“Who are you?”。
当用户输入 Lingyi,然后按【Enter】键时,程序会继续运行,其输出结果如下:
Hello!
Lingyi
2.注释
Python注释
注释的目的是让阅读人员能够轻松读懂每一行代码的意义,同时也为后期代码维护提供便利。在 Python 中,单行注释以 # 号开头,如下所示:
#第一个注释
print('Hello,World!')#第二个注释
Python 的多行注释用两个三引号'''包含起来,如下所示:
注释是代码中的辅助性文字,会被编译器或者解释器略去,不会被执行,一般用于编写者对代码的说明【标明代码的原理和用途、作者和版权,或注释单行代码用于辅助程序调试(初学的过程中,测试某行代码的功能)】。
在Python中,用"#"表示一行注释的开始,多行注释需要在每行开始都使用"#"。
二、语法元素的名称
1.变量
变量是保存和表示数据值的一种语法元。先定义后使用,在python中引用变量需要先定义,否则会报错,但与其他编程语言如C语言不同,python定义变量不需要事先定义变量类型,变量类型随变量所赋值的类型决定可重复赋值及运算在python中变量可以重复赋值使用,变量间也可相互赋值,同时可以对变量进行运算操作。基本赋值在python中,我们使用“=”对变量进行赋值,如“x=3"
2.命名
Python采用大写字母,小写字母,数字,下划线,汉字等字符进行组合命名。
注意:(1)首字符不能是数字;(2)标识符不能出现空格;(3)标识符不能与Python保留字相同;(4)对大小写敏感;
注意:True False None 要大写!
Python 中拥有 6 大数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、sets (集合)、dictionary(字典)。
数字
Python 3 支持 4 种类型的数字:int(整数类型)、float(浮点类型)、bool(布尔类型)、complex (复数类型)。
在 Python 3 中可以使用 type() 函数来查看数字类型,如下所示。
a=1 b=3.14 c=True
print(type(a)) print(type(b)) print(type(c))
输出结果<class'int'> 输出结果<class'float'> 输出结果 <class'bool'>
Python3 所支持的运算类型包括加法、减法、除法、整除、取余、乘法和乘方:
字符串
字符串就是在单引号、双引号和三引号之间的文字。单引号示例:print('welcome to hangzhou'),其中所有的空格和制表符都照原样保留。单引号与双引号的作用其实是一样的,但是当引号里包含单引号时,则该引号需使用双引号,例如:print("what’s your name?")。三引号可以指示一个多行的字符串,也可以在三引号中自由使用单引号和双引号,如下所示:
print('''Mike:Hi,How are you?
LiMing:Fine,Thank you!and you?
Mike:I'm fine,too!''')
如果要在单引号字符串中使用单引号本身,在双引号字符串中使用双引号本身,则需要借助于转义符(\),如下所示:
print('whar\'s your name?')
#输出结果如下:whar's your name?
注意:在一个字符串中,行末单独的斜杠号表示下一行继续,而不是开始写新的一行,另外可以使用双反斜杠(\\)来表示反斜杠本身,而 \n 表示换行符。
如果想要指示某些不需要使用转义符进行特别处理的字符串,那么需要指定一个原始字符串。原始字符串通过给字符串加上前缀 r 或 R 的方式指定,比如需要原样输出 \n 而不是令其换行,则代码如下:
print(r"Newlines are indicated by \n")
#输出结果是Newlines are indicated by \n
字符串的截取格式如下所示:
字符串常量[start_index:end_index+1]
此处解释下为什么加 1:字符串的截取从 start_index 开始,到 end_index 结束,也就是大家常理解的左闭右开,如下所示:
字符串(string)只是 Python 中的一种数据类型,下面的语句在赋值的时候右侧用了单引号,数据类型是字符串(string)。
string = '1'
下面语句的数据类型为整型(integer)。
num = 1
不同的数据类型之间是不能进行运算的,但是,不同数据类型可以相互转换,以上代码通过修改后就可以正常运行,修改后的代码如下:
注意,“+”号用在字符串中间是连接符,用在数值中间是运算符:int() 是将括号中的数值或者文本转换成整型数据类型。
四则基础运算如下:
因为相加的双方是数值型,此时“+”号是运算符,运行结果如下:
3
相加的双方是字符型数据,此时“+”号是连接符:
运行结果如下:
ab
列表
Python 列表是任意对象的有序集合,列表写在中括号 [] 里,元素之间用逗号隔开。这里的任意对象,既可以是列表嵌套列表,也可以是字符串,如下所示:
list = ["Python",12,[1,2,3],3.14,True]
print(list)#运行结果为['Python', 12, [1, 2, 3], 3.14, True]
每个 list(list 是笔者自定义的变量)中的元素从 0 开始计数,如下代码可以选取 list 中的第一个元素:
列表删除操作可以使用 remove 方法,只需要在变量名字后面加个句号就可以轻松调用,PyCharm 有自动联想功能选中目标方法或者函数,按【Tab】键即可快速键入
以下代码用于删除第 3 个元素,并用 print 将结果打印出来。其中 remove 方法用于删除列表的元素:
list.remove(3)
print(list)#运行结果是[1, 2, 4]
元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间则用逗号隔开,如下所示:
集合
集合(set)是一个无序不重复元素的序列,可以使用大括号 {} 或者 set() 函数创建集合。需要注意的是,一个空集必须使用 set() 函数创建而不能使用大括号 {},因为大括号 {} 是用来创建空字典的,如下所示:
字典
字典是一种可变容器模型,且可存储任意类型对象,用 {} 标识。字典是一个无序的键(key)值(value)对的集合,格式如下所示:
dic = {key1 : value1, key2:value2}
接下来建立一个字典,代码如下:
其中 name 是一个 key(键),liming 是一个 value(值)。
字典增加数据时,可以使用下面的方法:
字典删除数据时,可以使用 del 函数,代码如下:
条件语句
接下来进行登录验证操作,首先给变量 password 赋值,然后判断 password(密码)是否正确,正确就打印“login success!”(登录成功!),错误就打印“wrong password”(密码错误):
在 Python 中判断是否相等可以使用“==”两个等号(单个等号是赋值)。
条件语句的语法如下:
if 判断条件:
执行语句...
else:
执行语句...
循环语句
在 Python 中要注意缩进,条件语句根据缩进来判断执行语句的归属。
下面用 for 语句实现 1 至 9 的累加:
其中 range 表示范围,i 从 1(第 1 个参数)开始迭代,每次加 1(第 3 个参数),直到 i 变成了 10(第 2 个参数)结束,因此当 i=10 时不执行语句,for 循环是 9 次迭代。# 号代表注释,# 号后面的文本将不会执行。在 PyCharm 中,如果要注释代码,则可以选中代码后按组合键【Ctrl+/】。
for 的语法如下:
for 迭代变量 in 迭代次数:
执行语句...
如果是列表或者字典,就不用 range() 函数,直接用列表或者字典,此时 i 表示列表或者字典中的元素,代码如下:
运行结果如下:
1
2
3
4
函数
在刚刚接触的函数中,print() 是将结果打印出来的函数,int() 是将字符串类型转换成数据类型的函数。类似这种函数,统称为内建函数,内建函数可以直接调用。
有内就有外,外建函数其实就是通常所讲的自定义函数。
自定义函数的语法如下:
def f(x):
定义过程
return f(x)
def(define 即定义)是创建函数的方法,下面用 def 创建方程:y=5x+2: