前面介绍了选择python开发工具的方法,根据需求和学习阶段的不同来选择不同的编译器。从本篇开始我们就选用Anaconda中的spyder模块作为开发编译平台,在下载过程中可以直接百度搜索anaconda,就可以进入其官网,找到下载链接,进行下载。Anaconda Python/R Distribution - Free Downloadwww.anaconda.com
这里建议选择python3.7版本的Anaconda下载,同时根据自己电脑操作系统是32位还是64位来选择对应版本,下载后直接安装即可。
安装完成后在程序里找到anaconda,选择里面的spyder模块启动,就进入spyder程序开发页面:
有了工具,接下来我就从python使用时的基础语法开始说起。
(1)python基本语法
标识符:也就是参数命名,python使用英文字母、下划线和数字构成,而且第一个字符不能为数字。在python中标识符对大小写是敏感的。举个栗子:
a1=3 #正确:a1为正确的标识符命名方式
1a=4 #错误:首字母不能为数字
A1=4 #大写的A1值为4
a1=5 #小写的a1值为5,与A1完全不同
引号的用法:在python中引号有三种:单引号、双引号、三引号。这三种引号都可以用来作为字符串的标记,如下例子:
#引号的用法
str1= 'hello,world!'
str2= "hello,world"
str3= '''hello,world'''
str4= '''hello, world!
I love China'''
单引号和双引号作用基本一样,三引号在使用的时候对大段字符有优势,也就是如果大段字符首尾使用三引号,当需要换行时直接使用回车就可以,如上str4的字符串就有换行。
代码注释:在编写程序时经常加注释是个很好的习惯,有助于理解程序的含义。在python中有两种方式用于注释,如果注释只需要在一行完成,就是注释行开始加上“#”符号,如果多行注释,就使用三个单引号或者三个双引号。如下例子:
行与缩进:python使用缩进来表示代码块而不是使用大括号{}。同一个代码块内的缩进数必须相同。实际在使用的时候如果在相同代码块里,写完第一行后直接回车,编译器会自动与上一行对齐,也就是保证缩进数相等;如果要开始不同的代码块,就在新一行开头去除之前的缩进数即可。
输入输出:在python3里如果要从键盘输入,直接使用input语句即可,如果要输出结果,直接使用print语句。具体用法如下例子:
#输入输出语句
a=input("请输入a的值")
print(a)
如果运行该代码,在spider右下方控制台区域就可以根据打印的提示输入a的值,然后紧接着执行print输出语句。需要注意的时候python3会默认输入的值为字符。
(2)数据类型基础
python比较灵活,省却了繁琐的变量声明方式,这给初学者有极大的便利。比如a=3,c=‘a',在不声明变量是什么类型的时候,相信初学者一看就明白a是数值,而c是字符串。但也有较为复杂的数据组合或集合类型,下面我们一一介绍。
数字类型:与基本的数据类型对应,数字类型包括整型(integer)、浮点型(float 或double)、布尔型(bool)等,但在python3中这些类型都不用定义,系统会自动识别变量类型。同时可以直接使用python自带的type函数来查看变量类型。
a=3 #a为整数
b=3.1415 #b为浮点数
c= True #c为布尔型
d=4+3j #d为复数
print(type(a),type(b),type(c),type(d)) #识别四个变量对应的数字类型
数值运算:包括加减乘除四则运算,这个部分参与运算的均为数字,就直接进行四则运算即可。在赋值的时候还可以多个变量同时赋值,方式为a,b=2,3,这就是给a赋值为2,给b赋值为3。不过在除法的时候需要注意一下,使用/来表示,如a/b。当使用双斜杆时输出结果为a//b,取a/b结果的整数部分,而如果使用%,如a%b,则是计算a/b结果的余数部分。
a,b=2,3
print(a+b) #结果为5
print(a*b) #结果为6
print(a/b) #结果为0.66667
print(a//b) #结果为0
print(a%b) #结果为2
字符串类型:在python中字符串首尾使用引号来标识,包括单引号、双引号或者三个单引号。
str1='I love China'
str2="python is easy to learn"
字符串类型的运算:包括加和乘,不过其意义与数字运算完全不同。加号+为拼接(连接)操作,乘号为复制操作(乘号后面需要设定数字,即复制几次),例如:
s1='python is ok'
s2='i will work hard'
s=s1+s2 #实现拼接,结果为 python is oki will work hard
s=s2*4 #将s2字符串复制4次
字符串数组:而字符串在python里是一类特殊的数组,也就是说字符串是由多个字符组成的,因此可以使用数组的方式来对其中的字符进行定位和识别,同时也就会具有python内置的一些字符串处理函数。如下str1为字符串,里面包括三个单词,但这个字符串并不是由这三个单词构成,准确的说应该是由三个单词的字符加上空格字符构成。使用字符个数的方式来统计,就是这个str1一共包括19个字符,而第一个字符为n,其在这个str1字符串里的索引或者下标位置为0,第二个字符为o,它的索引值为1,依次类推可以将其余的字符给予定位。
str1= "now is Caojianhua"
print(str1[0],str1[5],str1[2:5]) #打印第1个字符,第6个字符,第3个字符到第6个字符
print(len(str1)) #通过python内置的len函数获取str1字符串的有效长度
数据容器(Container):通常是可以容纳多个变量或者数组,python里基本容器包括列表List、元组Tuple、集合Set、字典Dictionary。下面用一张图来对比说明一下基本用法:
列表List类型:是一种有序的数据集合,列表中的元素可以相同也可以不相同,它支持数字、字符甚至可以包含子列表。列表定义的时候括号使用[ ],方括号,数据放在方括号之间,以逗号分隔开。
number=[20,50,80,100,120,101] #定义一个列表
print(number[2]) #打印第三个元素
print(number[1:3]) #打印第二个、第三个和第四个元素
#追加方法,append()
number.append(200) #追加一个200到number里,排到最后
print(number) #结果为:[20,50,80,100,120,101,200]
#len()长度方法
print(len(number)) #打印列表的长度
#直接修改对应元素的值
number[1]=40 #修改第2个元素的值为40,修改前为50
#max()、min()获取列表中最大值元素和最小值元素
print(max(number)) #打印列表中最大元素
#insert()方法在指定位置插入新的元素
number.insert(2,60) #在列表第三个元素位置插入60,原来的就往后依次挪
print(number) #结果为[20,40,60,80,100,120,101]
#pop()方法移除列表中的一个元素
number.pop() #默认移除最后一个元素
number.pop(50) #指定移除元素50
#reverse()方法翻转列表
number.reverse() #将列表中元素顺序翻转
#sort()方法实现列表排序
number.sort() #默认为升序排序
number.sort(Reverse=True) #修改为降序排序
#list()方法可以将字符串转换为列表
a='abcdef'
alist=list(a) #转换为list
元组Tuple类型:与list列表一样,也属于数据集合,元素可以是数字、字符等。元组定义的时候括号使用(),小括号,数据放在小括号之间,以逗号分隔开。它的特点是,定义后也就是给定结构后,不可改变,包括大小和值都无法更改。
number=(20,50,80,100,120,101) #定义一个元组
print(number[2]) #打印第三个元素
print(number[1:3]) #打印第二个、第三个和第四个元素
#len()长度方法
print(len(number)) #打印列表的长度
#max()、min()获取元组中最大值元素和最小值元素
print(max(number)) #打印列表中最大元素
#tuple()方法可以将列表转换为元组
lista=['a','b','m'] #定义一个list
tuplea=tuple(lista) #将该list转换为元组
集合Set类型:集合类型属于无序、不可重复的数据集合,元素可以是数字、字符等。集合set定义的时候括号使用{ },花括号,数据放在花括号之间,以逗号分隔开。或者使用set()函数创建集合。需要注意的是,如果创建空集合,需要使用set()函数。
nset={'1','2','a','b'} #创建一个set集合
mset=set('abcd') #使用set()函数创建集合
print(mset) #打印集合,可以看控制台输出结果,并不会按abcd这个顺序打印,是一个无序的结果
#add()方法可以给集合添加新元素
mset.add('e') #添加一个新元素给mset集合
#remove()方法为从集合元素中去除某个指定元素
mset.remove('a') #去除a字符
#pop()方法为随机删除一个元素
mset.pop() #随机删除一个元素
print(mset) #查看新的集合数据
#clear()方法为清空集合中所有元素
mset.clear() #清空集合,此时mset为一个空集合
#len()方法获得集合元素的个数,也就是集合长度
print(len(mset)) #打印集合的长度
字典Dictionary类型:这种类型比较常用,其构造样式为键值对,简单说就是名称和所对应的属性,名称为key,属性为值value,如key为姓名,value则为到底姓甚名谁。在同一个字典里key是唯一的,不可重复。字典由一个或者多个键值对组成,键值对中间采用冒号:分割,每个键值对中间采用逗号隔开,整个字典外层为{ }花括号。
student={'name':'caojianhua',
'age':15,
'title':'CEO'
} #构建一个字典名称为student,里面为三个键值对
print(student.keys()) #获取字典里的所有key名称
print(student.values()) #获取字典里所有value值
print(student['name']) #获取字典里key为name的值
student['salary']=2000 #往student里增加一个键值对
print(student) #打印新的student字典
del student['age'] #删除指定的键值对
#clear()方法
student.clear() #删除student字典里所有的键值对
python的数据容器有点类似于C语言里的数组array,不过在这里没有这样的组织,换以上述四种数据组合方式。使用的时候各有优缺点,也各有需要注意的地方。尤其是对于字符串这种类型的数据,本身字符串就是一种数据容器,可以以list列表类型对其进行分析处理,也可以使用集合方式来处理。