Python编程从入门到实战(笔记)

  • 格式:wps
  • 大小:351.87 KB
  • 文档页数:31

Python简明教程•项目一外星人入侵.项目二数据可视化•项目三PythonWeb基础部分,[.起步・2.字符串°1.字符串。

2 .数字运算, 3冽表. 4元组。

条件语句if•5.字典, 6用户输入和while・7.函数。

1.定义函数。

2.定义有参函数。

3.带返回值函数O 4.可变参函数°5.任意食的瓠°6就任意瞄的关键字实参°7.将函数存储在模块中°8.使用as给函数指定SU名。

9.导入模块中所有方法•9.类。

9.1创建和使用类。

9.2继承°9.3导入类°9.4python 橱°9.5类编码风格•10.文件和异常。

1 .从文件中读瞰据-L1读取黔文件・1.2瀚读取文件-13创建一个包含文件各行内容的列表・1.4使用文件中的螭。

2.写入文件-2.1向空文件写入蟾-2.2写入多行文件。

3.异常■ 3.1 处理ZeroDivisionError-3.2else代码块■ 3.3 FileNotFoundError。

4 .存储数据■1.使用json.dumpO 和json.load。

■2.重构. 11.测试代码-1.测试函数1 .起步mac 使用brew 安装python3• home brew 的安装https://brew.sh/•安装homebrew /usr/bin/ruby -e H$(curl -fsSLhttps:///Homebrew/install/master/install)•使用brew安装python3brew helpbrew updatebrew -vbrew install python3 〃安装python3 brew upgrade python3 〃升级pythorB history2 .字符串i.字符串・修改字符串大小写name = "add lovelace"print(name)# title方法print(name+"->"+name.title())大小写转换・string.upperQ•string.lowerO常用空白符:-制表符(\t)•换行符(\n)去除空格•删除两侧空格string.stripO•删除左侧空格string.lstripO•删除右侧空格sting.rstripO2.数字运算基本运算・加・減・乘•除•幕运算a**b3 .列表常用方法方法作用name.appendO列表末尾添加name.countQname.insert(index,elem)指定典忝加name.reverseO倒序name.clearO清空name.extend(list)尾部添加list所有元素name.pop(index)弹出index索引对应的元素,index为空,弹出末尾元素name.sortO永久^序①默认卯」\至吠AE序②添加如ame.sort(reverse=True) 到小排序name.copyO返回name列表的一个映射,创建的list ii2 = ii.co P y()name.index(elm)返回指定元素的索引值name.remove(elm)按元素移除;如果有多个相同元素移除第一的sorted(name)对name进行临时排序,不改变list中元素的位置方法作用len(list)返回列表长度tyep(list)返回元素缠id(obj)返回obj 对应id获取列个元素• li[len(li)-l] • li[-l] //获取最后一个元素,仅当li 不为空时有效列表操作, 列表for elm in li: print(elm)〃结果bbccddbbccdd数字列表range()〃打印1到9的数字for value in range(ljl0):#(1,10):左闭右开 print(value)56789•使用list0和range 。

生成数字链表»> numbers = list(range(lj6))»> numbers[1, 2, 3, 4, 5].数粉聞计In [46] In [62]for x in range(ljll):x = x**2datas.append(x)print(datas)min = min(datas)max = max(datas)sum = sum(datas J 0)print(,,min=,,+str(min)) print("max=,,+str(max)) print ("sum=,,+str( sum))〃结果[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]min=lmax=100sum=385・列表解析(使用一行fori吾句,生成列表)#列表解析datas = [values**2 for values in range(ljl0)] print(datas)〃结果[1, 4, 9, 16, 25, 36, 49, 64, 81].列表切片:取列表F分#列表解析datas = [values for values in range® 11)] print(datas)print ( dat a s [ 0:3 ]) #不囱含7<椀为3成元萦print (da t a s [ 1:3 ]) #不泡含戸?兢为3邀元素ppint(datas[l: 巖局纹元戻print(datas[: 5])#开头:到下标为5-1的元素print(datas[-3:〃结果[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10][0, 1, 2][1, 2][1, 2, 3, 4, 5, 6, 7, 8, 9, 10][0, 1, 2, 3, 4][8, 9, 10]•遍历部分元素(切片)datas = [values for valuesin range(0>ll)]print(datas)for num in datas[l:5]: print(num)datal = [values for values in range(0jll)]data2 = datalprint("datal_id:"+str(id(datal))) Old相同,指向同一块内存print("data2_id:M+str(id(data2)))datal.append(23)print("datal:M+str(datal))print("data2:"+str(data2))林使用复制data3 = datal.copy();print("data3_id:"+str(id(data3)))ppint(”data3:”+str(data3))#复制data4 = datal[:]print(n data4_id:M+str(id(data4)))print("data4:"+str(data4))#拓展datadata5=[]data5.extend(datal)print(n data5_id:"+str(id(data5)))print("data5:"+str(data5))〃结果datal_id:4411185032data2_id:4411185032datal:[0, 1,2, 3, 4, 5, 6, 7,8, 9, 10, 23]data2:[0^ 1,2, 3, 4, 5, 6, 1,8, 9, 10> 23]data3_id:4408819464data3:[0^L 2, 3, 4,5,6, 7,8, 9, 10, 23]data4_id: 4411390728data4:[0,1, 2, 3, 4,5,6, 7,8, 9, 10, 23]data5_id:4411376776data5:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 23][Finished in 0.0s]4 •元组Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

•定组元组看起来犹如列表,但使用圆括号而不是方括号来标识。

定义元组后,就可以使用索引来访问其元素,就像访问列表元样。

#元组dem = (200,400) #定义一个长宽不能改变的矩形,长:200宽:400Ion = dem[0]width = dem[l]print("long:"+str(Ion))print("width:"+str(width))#改变值dem[0] = 12 #报错:'tuple' object does not support item assignment遍历元组dem = (200,400)。

定义一个长宽不能改变的矩形,长:2。

0第:40。

#遍历元组for de in dem:printC'demr'+strCde))条件语句ifcars = ['audi', 1bmw', 'subaru13'toyota']。

将bmw以全部大写方式打印for car in cars:if car == 'bmw':print (car. upper。

)else:print(car.title())•普通o ==O > =O < =o 1 =•多个条件检查。

and。

or•包含检查° elm in list。

elm not in list测试:»> agel=12»> age2=20»> agel>age2False»> agel<=age2True»> agel<age2 and agel>0True»> agel>20 or age2<40True»>检査特定值是否在列表中datas=list(range(lj5))datas[1, 2, 3, 4]3 in datasTrue6 in datasFalse#特定值不在列表中>» 6 not in datasTrue• if-elif-else# -*- coding: utf-8age = 12if age<4:print("fee five")elif age<60:printC'^eelS")else:print("old free")•判断列表是否为空data=[]data.append(12)if data:#列表不为空时返回True print("list is not null") print("len: ,,+str(len(data))) else: print("list is null")斯结果list is not nulllen:l[Finished in 0.1s]•判断列表1中的元素是否在列表2中# -*- coding: utf-8 -*-datal=[val for val in range(l,6)]data2=list(range(lj11))print(datal)print(data2)#判翰atal中的数据是否在data2中存在for val in datal:if val in data2:print(str(val)+H in data2H) else:print(str(val)+" is not in data2")#判断是否data】中的数字都在data2中count=0for val in datal:if val in data2:count = count+1if count==len(datal): print("datal in data2")5 .字典館字典.在Python中,字典是一系列键TfiXEt。