2. Python起步
2.1 语法基础:
缩进。碎金必须对齐,每次缩进保持4各空格。句子后面无分号,但是在流程控制语句和条件语句后面必须加上冒号 :
单行代码注释用#
多行代码注释用”’ 或 “”” 括起来。
断行,或多个语句放在一行,中间用分号 ; 隔起来。
2.2 输入输出:
用imput() 函数接收输入,比如 name= input(“Please input your name”)
用print()函数显示输出,比如 print(“hello world!”)
2.3 用Python计算:
可以直接用python进行简单计算
输入 3*5/2+4*2
回车计算得到 15.5
Python内置了math模块,里面包含丰富的函数,比如sin(x),cos(x),tan(x),fabs(x)(求绝对值)。使用时需要事先用 import math 语句导入。
使用例子:
>>>import math
>>>x=2
>>>math.sin(x)
0.9092974268256817
2.4 Python能计算大数据
比如199**99(199的99次方),瞬间就能计算出结果。不用事先设定变量类型,而且没有溢出,这是python的一大亮点。
3. Python数据类型
3.1 简单数据类型
3.1.1 字符串str
python中的字符串通常由单引号 ‘ 、双引号 “、三个单引号或双引号包围的一串字符串组成,比如:
‘abc’、’123’、”abc12*、”大家”、”’123abc”’、”””abc123″””。
字符串还可以通过序列号(序列号从0开始)来取出其中某个字符使用,比如’abcde'[1]取得的值为’b’。
里面也包括转义字符,和c语言类似。
字符串也可以运算。+ 号表示连接字符串,* 号表示同一字符串多次连接。字符串也有一些处理函数,比如将第一个字母大写,比如分割字符串,获取字符串长度等,可以查表得到。
3.1.2 整数int
整数可以以进制来书写,默认是十进制。用0+”进制标志”+数字 代表不同进制的数,其中“进制标志”有以下几种:
0o[或0O]数字,表示八进制整数(例如:0O24、0O24)
0x[或0X]数字,表示十六进制整数(例如:0x3F、0X3F)
ob[或0B]数字,表示二进制整数(例如:0b101、0B101)
十进制不用这样写,直接写就行。
整数运算符和c语言一样,包括+-*/
** 乘方
// 整除,比如14//4=3(扔掉余数)
% 取余
| 位或
^ 位异或
& 位与
<< 左移运算
<< 右移运算
算符优先级从高到低如下:
**
* / %
+ –
| ^ & << >>
在同一式子中可以使用括号来控制。
3.1.3 浮点数float
只要写的数小数,则自动就是浮点数,比如3.14、19.、19.1、.098、0.098、-2e3(这是科学计数法,表示-2×10^3)
3.1.4 数据类型转换
数据类型之间可以互相转换,只需要给需要转换的数据前面加上数据类型说明即可,函数如下:
>>>str(23)
23
>>>float(3)
3.0
>>>int(“23.5”)
23
>>>int(“23.0001”)
23
>>>str(23.0001)
23.0001
3.2 字符串进阶
转义字符串,比如\\表示\,\n标识换行。
3.2.1 原始字符串
以 r 或 R 开始,其后的所有 \ 就不用再写为 \\ 了,但是运行后,\ 自动会转义成 \\ ,比如:
>>>r’abc\def’
‘abc\\def
注意,原始字符串不能以 \ 结尾。
3.2.2 格式化字符串
以%开头,对字符串进行格式操作,可以改变字符串的内容,或字符串文字的顺序等。类似于C语言。
%c 单个字符
%d 十进制整数
%o 八进制整数
%s 字符串
%x 十六进制整数,将其中的字母小写
%X 十六进制整数,将其中的字母大写
举例:
>>>print(“%d + %d = %d” % (2,3,2+3))
2+3=5
>>>print(“I am a %s.” % “machine”)
I am a machine.
>>>print(“%s %s %s!” % (“I”,”love”,”you”))
I love you!
3.2.3 中文字符串处理
python3.x默认支持中文,编码为UTF-8。
字符串编码: encode(encodeing=’utf-8′, errors=’strict’)
字符串解码: decode(encodeing=’utf-8′, errors=’strict’)
其中encodeing选项还可以是gbk、gb2312等,errors选项可以是strict(报错)、ignore(忽略)、replace(替换)等形式。
3.3 标志符与赋值号
3.3.1 标志符
以字母或下划线开始,对大小写敏感,不能与关键字相同。
比如a、abc、a_、_acd、aK47、bbbb 都是可以的。但是 9a 、0cc 就不行。
3.3.2 “=”
c语言中“=”就是赋值运算符,但在python中,等号“=”的作用是将对象引用与内存中某对象进行绑定。
比如:
x=3 #意思是内存中还不存在3,则在内存中先创建3,并将x与3绑定。此时,x引用3
y=3 #此时内存已经有了3,则直接将y与内存中的3进行绑定。
#此时x与y同时绑定了内存中的同一对象3
y=x+5 #此操作会计算右边值为8,内存中不存在8,先创建8,再将y与绑定到8。
Python是一种动态类型机制的语言,所以变量在使用前不需要定义它的类型,同时,在任何时刻,某个对象引用都可以重新引用一个不同(类型)的对象。python在运行时会对变量类型进行后台检查,只有相同类型的变量才能做同一种计算。
3.4 Python结构数据类型
3.4.1 列表(list)
列表用[ ] 将各种数据类型的数据括起来放到一起,以逗号隔开,类似于一个组合。列表也能包括列表。列表支持乘法运算,乘法的意思就是将该列表重复产生若干次生成若干个相同列表的意思。
比如:
>>>[1,2,’abc’,3+2]
[1, 2, ‘abc’, 5]
>>>a=[1,2,’abc’,3+2] #运行后不显示结果
>>> a[2] #2为第3个元素
‘abc’
>>>list() #产生一个空列表
[ ]
>>>[] #产生一个空列表
[ ]
列表有很多操作函数。
3.4.2 元组(tuple)
元祖是特殊的列表,不同的是元组建立后不能被改变。与圆括号( )定义。
3.4.3 字典(dict)
字典也类似于列表,只是它是个无序的列表,元素没有顺序这个概念,其成员位置只是象征性的。以“键:值”对的形式存在。用大括号{ }包围元素。在字典中只能通过“键”来访问成员。
比如:
>>> a={‘a’:1,’b’:2,’c’:3.4}
>>> a
{‘c’: 3.4, ‘b’: 2, ‘a’: 1}
>>> a[‘a’]
1
>>> a[1]
Traceback (most recent call last):
File “<pyshell#18>”, line 1, in <module>
a[1]
KeyError: 1
字典也有很多操作函数。
3.5 内置常量与逻辑运算符,比较运算符
3.5.1 常用内置常量
None #无,常表示没有值的对象; 假。
True #真
False #假
0 #假
‘ ‘ #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典
3.5.2 逻辑运算符
与 and
或 or
非 not
比如:
>>>0 or 1
1
3.5.3 比较运算符
== 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
这些运算符和数学上的相同。返回值是True或者False。
3.5.4 其他逻辑操作符
is 和 is not
用来判断左右两边是否是同一个值(同一个引用)
in 和 not in
用来判断元素是不是在某个多成员数据里面(如字符串、列表、元组、字典等)
3.6 序列
3.6.1 序列切片
像字符串,数组等变量其元素都有一定的序列,从左向右以0开始计数(1,2,3,以此类推),从右向左以-1开始计数(-1,-2,-3,以此类推)。
序列片段 形如[start:end:step]来取出来的成员组成的序列就是序列切片。step是步长。切片所取元素从序列的start开始,到end前一个结束,不包括序号为end的元素。
还有其他切片方法。对于元组 alst=[0,1,2,3,4,5,6,7]来说:
alst[:] #取全部成员数据项
als[0:] #取全部成员数据项
als[:-1] #取除最后一个成员之外的所有数据项
als[2:5] #得到[2,3,4]
als[0:5:2] #得到[0,2,4]
3.6.2 序列内置操作
les(s) #返回s的元素数(长度)
min(s) #返回s中的最小值
max(s) #返回s中的最大值
sum(s[,start]) #返回s中的各项的和
all(s) #s中所有项为真,则返回真,否则返回假
any(s) #s中有一项为真,则返回真,否则返回假
注意,min()、max()函数要求序列中的元素能比较大小,sum()则要求元素只能是int或者float类型。