本人是刚刚学完Python基础课程的小白之一。对Python这门语言有了一定的了结。所以,我想把这些天我学到的东西分享给大家。也算是自己对这大约一个月的时间学习到的知识做一个总结吧。
我们为什么要学习Python这门语言呢?近些年来,人工智能产业得到了飞速的发展,同时也使Python这一门编程语言火了起来。Python在人工智能这一方面具有重要的作用,Python中具有的numpy,pandas库在人工智能中的数据分析方面起到了重大作用。所以Python是人工智能方面必备的编程语言之一。
Python是什么?官方宣传说:Python是一种面向对象的解释性高级编程语言,具有动态语义。那么,就让我们开始Python的学习之旅吧。
(一)程序的输入输出
程序输入:程序输入由input函数来执行
其中input可以在后面添加(‘要输出的字符串’)
最后输出为:要输出的字符串+要输出的内容
程序输出:程序输出由print函数来执行
如果要输出一个整数
就是input(x) x为需要输出的整数
如果要输出多个数据,具体操作如下:
x=input('x=') y=input('y=') print(x,y)
(二)列表和元祖
列表和元祖是Python中最重要的两种序列。列表和元祖的区别在于:列表是可以修改,元祖不可修改。
列表与字典中有许多方法,由于篇幅有限,后面有·多种方法的只用一种方法进行演示。
列表:列表用[]表示
下面以append方法进行演示列表基本方法的使用:
ab=[1,2,3] ab.append(4)#将一个对象附加到列表末尾 print(ab)
部分常用方法:
clear:清空列表内容
copy:复制列表
count:计算指定元素出现次数
index:查找指定值第一次出现的索引
insert:将对象插入列表
reverse:反序排列列表中元素
sort:对列表就地排序
pop:从列表中删除一个元素
extend:将多个对象添加到列表末尾
remove:删除第一个为指定值的元素
元祖:元祖用()表示
创建一个元祖:
tu=(1,2,3,)#创建一个名为tu的元祖
列表与元祖的通用操作:切片
切片是从一串数据中读取需要的数据,下面就以列表为例介绍切片的基本操作。
xm=[1,2,3,4,5,6,7,8,9,10]#创建一个列表 print(xm[1:9:2])#默认第一个索引为0,第一个数为起始索引,第二个数表示结束索引的后一位,第三个数表示步长
(三)使用字符串
字符串的格式设置通常用%s表示
字符串的基本方法:
以find方法为例
a='hello,Hello' b=a.find('hello')#find方法是在字符串中查找子串,若找到,返回子串的第一个字符串的索引,若没找到,返回-1 print(b)
其他常用方法:
center:在两边添加填充字符使字符串居中。(默认为空格)
join:合并序列中的元素
lower:返回字符串的小写版本
replace:将指定子串替换为另一个字符串并返回替换后的结果
split:将字符串拆分为序列
strip:将字符串开头和末尾的空白删除,并返回删除后的结果
(四)字典
字典的特点:其中的值不按顺序排列,而是存储在键下
创建和使用字典:
animals={'Jack':'cat','Tom':'dog','Jerry':'fish'}#创建字典 print(len(animals))#len(d)返回字典d包含的项数
其他基本操作:
d[k]返回与键k相关联的值
d[k]=v 将值v关联到键k
del d[k]删除键为k的项
k in d检查字典d是否包含键为k的项
字典方法:
以pop方法为例
d={'x':1,'y':2} d.pop('x')#用于获取与指定键相关联的值,并将该键-值对从字典中删除
其他常用方法:
clear 删除所有的字典项
copy 返回一个新字典,里面的数据与原字典相同(浅复制)
deepcopy 同时复制值及其包含的所有值(深复制)
fromkeys 创建一个包含指定键的新字典,每个键对应值均为None
get 访问字典项
items 返回一个包含所有字典项的列表
keys 返回一个包含指定字典中的键的字典视图
update 使用一个字典中的项更新另一个字典
values返回一个由字典中的值组成的字典视图
(五)流程控制
1.缩进
在循环中和if语句中均有缩进,需要注意
2.if语句
if用来判断条件是否成立
(1)单个条件判断使用if-else语句
a=0 if a>0: print(a)#条件成立执行的语句 else: print(a+1)#条件不成立执行的语句
(2)多个条件判断使用elif子句
a=0 if a>0: print(a+1)#第一个条件成立执行的语句 elif a==0: print(a)#第二个条件成立执行的语句 else: print(a-1)#第一个条件和第二个条件均不成立执行的语句
3.循环
(1)while循环
条件成立,进入循环,执行循环里面的内容,直到条件不成立,退出循环
x=1 while x<=100:#循环条件 print(x)#循环中的内容 x+=1#循环中的内容
(2)for循环
for循环通常用来遍历我们所需要遍历的元素
a=[1,2,3,4,5,6,7,8,9,10] for a in a: print(a)
运行结果:
1
2
3
4
5
6
7
8
9
10
4.简单的列表推导式
[(x,y)for x in range(3) for y in range(3)]#遍历一个x从0到2,y从0到2的平面坐标
4.其他
break 跳出循环
continue 结束当前迭代,进入下一次迭代
pass 什么都不做
del 删除不再使用的对象
(六)函数
函数,就是一个可被调用的代码块。
函数的定义和调用
def ifelse(a):#定义一个名为ifelse的函数 if a>0: print(a+1) else: print(a-1)#代码块 a=input('a=') ifelse(int(a))#调用函数
函数递归
函数递归指的是函数自己调用自己的情况
下面给出示例
def power(x,n): if n==0: return 1 else: return x*power(x,n-1)#重复调用自身 print(power(2,3))
(七)类与对象
类:类型
对象:属于特定的类,并且被称为该类的实例
方法:与函数类似
类的继承:
python中可以进行多继承,一个基类可以有多个子类,一个子类可以有多个基类。Python中应当尽量避免多继承。
class fruit1():#定义一个基类 def __init__(self,person,fruit):#基类的方法 self.person =person self.fruit=fruit def eat(self): print('%s爱吃%s'%(self.person,self.fruit)) class apple(fruit1):#创建基类下的子类 def __init__(self,person,fruit,health): super(apple, self).__init__(person,fruit)#子类应该具有基类的属性 self.health=health def good(self):#子类的方法 print('%s有%s'%(self.fruit,self.health)) a=apple('孩子','apple','vc') a.good()
静态方法和类方法
静态方法:静态方法的定义中没有参数self,可直接通过类来调用
类方法:定义中包含类似于self的参数,通常被命名为cls。它可以通过对象直接调用,但参数cls将自动关联到类
class Myclass: def smeth():#静态方法 print('This is aatatic method') smeth=staticmethod(smeth) def cmeth(cls):#类方法 print('This is class method of',cls) cmeth=classmethod(cmeth)
(八)文件操作
文件操作是Python中的一个重要的部分,文件有以下几种常用操作
r 读取模式
w 写入模式
x 独占写入模式
a 附加模式
b 二进制模式(与其他模式结合使用)
t 文本模式(默认值,与其他模式结合使用)
+ 读写模式(与其他模式结合使用)
下面以写入模式为例
f=open('somefile.txt','w')#以写入模式打开文件 f.write('Hello,') f.write('World!')#写入内容 f.close()#关闭文件
(九)常用模块 time模块
我们可以导入time模块进行关于时间的操作
import time as t#将time模块导入,并使其别名为t t.sleep(5)使用time模块中的sleep函数,使程序休眠5秒
time模块中的常用方法:
asctime([tuple]) 将时间元祖转换为字符串
localtime([secs])将秒数转换为表示当地日期的时间元祖
mktime(tuple)将时间元祖转换为当地时间
sleep [secs] 休眠sec秒
strtime(string[,format])将字符串转换为时间元祖
time()当前时间(从新纪元开始后的秒数,以UTC为准)
(十)异常
异常是什么?
异常是程序中出现的相关错误,我们可以通过有关操作来捕获它
try: x=int(input('Enter the first number:')) y=int(input('Enter the next number:')) print(x/y)#要执行的代码块 except (ZeroDivisionError,TypeError)as e:#检查是否有此异常 print(e)#有异常的操作 else:print('No error')#无异常的操作 finally:print('Solve it')#有无异常都要进行的操作
如果代码块中的异常与检查的异常不符,程序仍会报错
IDE:Anaconda3(64-bit)
参考文献《Python基础教程》(第3版)
[挪]Magnus Lie Hetland 著
袁国忠 译