【作者】
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言
【特点】
优点:
1.Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
2.除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
3.许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
缺点:
1.第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
2.第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
【安装】
1.www.python.org,下载对应版本,勾选安装程序的add python3.7 path选项,over。
2.开始-cmd-python,查看版本号。敲击print(“hello,python“),运行。
3.保存print(“hello,python”),命名hello.py,开始-cmd-python hello.py
4.下载浏览器运行助手https://raw.githubusercontent.com/michaelliao/learn-python3/master/teach/learning.py,开始-cmd-cd 文件存放路径-执行python learning.py。
提示:Ready for Python code on port 39093...表示运行成功,保持md窗口,不要关闭,可以浏览器代码框在线编辑python代码,并运行查看结果。
【基础知识】
1.面向对象:一个有诸多技能的工人,可以让这个工人去干很多事情
函数式编程:一群只有单个技能的工人,可以让他们同时出动去干一件复杂的事情
高阶函数:一个工人必须依靠下一个工人的技能才能完成工作。
python笔记:
【常用函数】
for i in range(1,10,2)#开始、停止、步长间隔,结果循环打印奇数13579
num=list(range(1,11,2)#创建奇数数字列表13579
min(列表名);max(列表名);sum(列表名)#数字最小值、最大值、求和
help(print),dir(print),print.__doc__#查看函数用法
【常用方法】
print(变量名.title(),变量名.upper(),变量名.lower())#首字母大写,全字母大写,全字母小写,无参数
print("\n\t测试换行符和缩进符号共用")#空格和换行符和缩进符共用打印
print(变量名.lstrip(),变量名.rstrip(),变量名.strip())#删除前置/末尾/前置+末尾的空格,临时显示,无参
variable.append('leo'),var.insert(0,'leo')#列表末尾添加元素leo,列表中间插入元素leo,有参数
del var[0];var1=var.pop();var2=var.remove('元素名')#列表物理删除、栈顶末尾删除、元素精确删除
var.sort();var.sort(reverse=True);print(sorted(列表名称))#列表物理字母abc/cba物理排序、临时排序
reverse()#列表翻转排序,不考虑ABCD字母排序,直接从右到左打印列表
len(列表名称)#列表长度获取
【1.安装和基础】
1.ctrl+z+回车,exit(),退出整个窗口;打印死循环时,Ctrl+c,停止输出结果。
2.CMD模式,D进入具体盘符,CD指向具体位置,dir展示所有文件。
3.简单编程工具geany,Download网址:https://geany.org/
4.python下载地址:https://www.python.org/downloads/
5.安装完成后,配置Path环境变量,CMD运行python -V。
6.Geany:Python命令:python -m py_compile "%f",执行命令:python "%f"
【2.变量和简单数据类型】
1.编译器的语法突出功能:蓝色代表函数名称,黑色代表原始代码,橙色代表非Python代码。
2.变量以数字、字母、下划线组成:
①不能以数字打头;②不能包含空格;
③不能用关键字和函数名做变量名称;
④慎用小写字母I和大写字母O做变量名称,防止看成数字1和0;
⑤python解释器不会对英文单词变量做拼写检查,message和mesage一样可以创建自定义变量。
3.字符串:用单引号和双引号括起来的字符都是字符串,单双尽量错开使用,避免程序误读。
4.方法:对数据进行的操作就是方法,每个方法后面跟着完成方法的额外信息,例如title()。
5.空格连接字符串做打印时,要加双引号。
6.空白字符串:空白泛指任何非打印字符,如空格" "、制表符、换行符"\n"、缩进"\t"等。
7.数字:①可以使用括号来修改次序;②空格不影响计算的顺序;
③浮点做运算,结果中包含小数位数时,几乎是不可确定其小数位数的,例如:0.2+0.1=0.300000004,而不是0.3,所有语言都存在这个问题,可以通过截位和四舍五入等原始函数或自定义函数处理。
8.打印中包含字符串+变量数字+字符串时,系统无法识别变量数字是字符串还是数字,需转换打印。
例子:age=26;print("i like number: "+str(age)+" is my age"),直接+age会隐式类型错误。
9.注释:解释器中输入import this+回车,会有一首诗。
【3.列表简介和组织列表】
1.列表格式:用[]表示列表,用逗号隔开元素,用单引号括起来具体元素。
2.列表打印:①直接打印是包含[]和全部元素;②精确打印=列表名称+索引+下标(0开始,-1截止)。
3.列表修改:①修改元素,直接列表名+索引=‘新元素名';②末尾增加元素,直接变量名.append('新元素名');③插入新元素,变量名.inser(0,'新元素名'),0代表插入的位置,其他元素右移。
4.列表删除:①物理删除,del var[索引],删除后不恢复;②栈顶弹出删除,var1=var.pop(),默认删除最后一个元素,并将元素保存到新变量var1中,虽删除但可通过新变量访问;③精确删除,var.remove('元素名称'),删除后可继续赋值使用。
5.列表排序:保留原始排序的临时排序,用sorted()方法;物理排序,用sort()和sort(reserve=True)
6.列表长度:len(列表名称),由1开始。
【4.操作列表和列表解析】
1.for循环:需要对列表中的每一个元素,执行相同的操作时,可以使用for循环+冒号+缩进。
2.缩进错误:只有需要在每个元素都执行一遍的子代码才需要缩进,总结和概括不需要缩进。
3.逻辑错误:本来应该缩进的代码,没有使用缩进,但是语法正确,结果不符合预期。
4.数值列表函数:①for i in range(1,10);打印1-9;②num_llist=range(1.10.2)打印奇数;
5.列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素,for后面无冒号。
squares=[i**2 for in range(1,11)];print(squares);
6.打印数字列表:num=list(range(1,11,2)
7.列表切片:处理列表的部分元素统称为切片。格式:list[0:4],表示获取列表的1到3个元素,0作为第一个数开始,4作为终止数,不获取4的下标数字。例子:[-4:]倒数四个数。
8.列表复制:list02=list01[:],元素复制;list01=list02,列表复制。
【元组,元素不可变,元组可重新赋值】
1.元组:不可变的列表称为元组。单个元组的元素不可通过下标更改,但是整个元组可重新定义。
2.组成:小括号+逗号,无单引号。
【PEP8格式设置指南】
1.网址:https://python.org/dev/peps/pep-0008/
2.建议:每一级使用4个空格做缩进,既提高可读性,也留下多级缩进空间。
2.建议:每行不超过80个字符,可通过空白行整理代码,python解释器根据水平缩进解读代码,不关心垂直间距。
【if判断语句】
1.判断语句,需要两个等号“==”,“!=”,检查两边的值是否一致,是返回ture,否返回false
2.判断条件,区分大小写,不同大小写的变量,不一致,返回false,需要upper(),lower()转换比对
3.常用运算符:==相等返回true,!=不相等返回true,and, or,in包含于列表返回ture ,not in
4.常用判断:if-elif-else(最后一个else非必填),if-elif-elif(else替换为elif更精确的执行,预防无效和恶意数据),if-if-if(多条件判断,每一个都要执行一次判断)
【导入函数】
1.导入整个模块,import sys,调用的时候需要,文件名.函数名(形参),如sys.print('hello')
2.导入特定函数,form sys import print as p,调用的时候直接函数名(形参),如print('hello')
3.导入所有函数, from sys import *,慎用,因为该方法直接调用函数名称,容易和当前文本变量重复
4.函数位置实参、关键字实参、任意实参:
def user(*info):print(info);user(1,2,3,4,5,...),可以添加任意参数
def user(id,name,**info):dict={},dict['id']=id;dict['name']=name;
for key,value in info.items():dict[key]=value;return(dict);print(dict);
user(26,name='leo',shengao=176,tizhong='70kg'),可以添加任意字典参数。
【5函数】
1.位置实参:使用位置实参来调用函数,位置必须一一对应,例如pet(style="dog",name="lucky")
2.关键字实参:务必准确地指定函数定义中的形参名,例如 pet(style="dog",name="lucky")
3.参数默认值:使用默认值,必须有默认值的参数放在末尾,例如def pet(name,style="dog")
4.返回值:处理数据,返回一个或者一组值,返回值需要一个变量储存和打印,例如
full_name=get_name(first_name,last_name);print("full_name")
5.可选实参:形参新增空字符串,例如middle=" ";函数体新增if middle:..else:判断。
6.函数返回字典和列表:函数可以返回任何类型的值,包含复杂的字段和数据;
def get_name(first_name,last_name,middle_name=" ",age=" "):
name={'first':first_name,'last_name':last_name}
if age:
name['age']=age
return name
full_name1=get_name("leo","smith","yep","26")
print(full_name1);
7.退出设置:每次输入都加判断检查是否需要退出,例如:fname=input("");if fname="q":break;
8.函数理念:每个函数只一项具体的工作,可以在函数中使用其他函数,便于维护。