Pthon 学习笔记

         Python  学习 -- 注意 -- 事项 -- 汇总

一、 通用注意事项:
@@@@@ 1、变量和字符串在被调用时,变量可以直接调用,字符串需使用“”包括进去调用。
age = 41
message = “my age is ” + age + ” ! ”
print(message.title())
当然也可以直接打印内容,而不是调用message变量的值
@@@@@ 2、注意使用全角、半角的区别,有些符号必须使用半角,全角会报错!!!
@@@@@ 3、注意for if elif else 等语句的缩进,冒号(必须半角)
@@@@@ 4、==是代表询问,=代表确定设置, !=代表不等,
+=可以在同一个变量里追加信息(1_user_input_while)
\t 代表空格,\n代表换行
如下:可以换3行,本身print会打印1行,每增减\n增加一行,因此3行空行。
print(“\n\n”)
@@@@@ 5、“”或‘’的使用,元素或值一般要使用“”或‘’包括后才使用
@@@@@ 6、“” 与” 复核使用时,要把“”在外部,”在内部使用。
@@@@@ 7、使用组合键‘ctrl’ + ‘/’ 在注释掉1条或多条命令记录。
@@@@@ 8、pycharm的编辑框右上角出现圆的红色惊叹号,则脚本有错误。
同时会有个右侧会有个很短的红线提示,错误位置。
@@@@@ 9、发现程序语句是逐条执行的,不要理解成一次执行多条或整套语句。
@@@@@ 10、代码的缩进,每级缩进都使用4个空格。
@@@@@ 11、编程时应多使用制表符键(TAB键),它相当于4个空格,同\t含义
如果制表符键与空格键混用了,可能导致很难发现的问题。
有必要时请使用软件设置,把所有制表符改为空格。
标准行的长度,不超过80字符。
@@@@@ 12、遇到一个问题,在读取有中文的TXT文档时,对文档执行代码出现编码格式不匹配问题。
‘gbk’ codec can’t decode 提示原来的文档使用了GBK编码,无法读取、执行脚本。
在open()参数里加入encoding=’UTF-8’,确保使用UTF-8来解码TXT文档,这样pycharm
和python都可以正确读取、执行脚本,编译TXT文档了。 4_file_analysis.py

二、 变量variable:
定义一个变量的值。定义元素使用“”
player = “1,2,3,4,5”

三、 列表list:
定义一个列表文件。使用[]
元素是有序列的 :第一个元素是0,第二个是1。 此处注意差一问题。
也可以从后往前推:最后一个-1,倒数第二个-2,以此类推
player = [1,2,3,4,5]
1、列表切片:指在列表中截取部分元素来进行操作。 此处注意差一问题。
切片操作符在Python中的原型是[start:stop:step],即:[开始索引:结束索引:步长值]
player[1:3],截取列表player的第1,2 一共2个元素。
player[:5]冒号左侧为空则代表是从第一个元素开始,到第5个元素结束。01234
player[-7:]冒号右侧为空,则代表从倒数第7个元素到最后一个元素。-(7654321)
2、复制列表:she_foods = my_foods[:]
3、代码的缩进,每级缩进都使用4个空格。
4、编程时应多使用制表符键(TAB键),它相当于4个空格,同\t含义
5、如果制表符键与空格键混用了,可能导致很难发现的问题。
6、有必要时请使用软件设置,把所有制表符改为空格。
7、标准行的长度,不超过80字符。

四、 元组tuple:
1、它是一种特殊的列表,它的内容不可以修改,它使用()符号标识。
2、所有对list的操作,都可应用于元组
3、dimensions = (200,5,”a”,’b’,) 元组最后一位要加(,)逗号
以便元组识别最后一位是元素还是参数。
4、nums = (1, 2, 3, 4) ### 使用如下构造函数轻松转换元组与列表:
nums = list(nums) ### 元组转换为了列表
nums = tuple(nums) ### 列表转换为了元组

五、 字典dict:
1、类似于列表使用{}表示,字典中可包含任意数量的键-值对。
每对键值使用冒号连接,每组键值对使用逗号分开。
alien = {‘color’:’green’,’point’:’5’}
2、列表中嵌套字典:在列表中重复多次使用同一字典。
在for循环时直接调用字典,此时,即使使用列表切片技术
限定范围,修改列表中的1条记录,也会导致修改表中所有
同一字典的内容。原因是:这时修改了被调用的字典。
(类似指针被修改)
解决方法:在for循环时,不直接调用字典,使用变量直接赋值。
例:5_wordboot_xiugai ,55_wordboot_xiugai

六、 循环语句for…in…:
1、python在执行脚本时,是以脚本命令行与上一行的位置是否缩进来判断上下文关系的。
因此要注意缩进的使用。
使用for循环尽量不要去修改列表或字典。

七、 判断语句if if elif else :
1、通过使用if来判断条件,并执行操作。
每一个if语句都是一个包含true 或 false的表达式。
2、and要求要匹配的都必须通过才true,or则要求要匹配的有任何1项通过则true
3、要检查特定的值是否包含在指定的列表中,可以使用“in”
反向不包含使用“not in”
4、if-elif-else结构(匹配即终止),首先比较第一个条件,如果通过,
则执行第一个条件的执行语句。并且跳过下边的剩余条件。如果未通过,
则继续匹配下一个条件,通过则执行,否则继续向下匹配,直至结束。
5、else可能会引入很多恶意数据,如果可以确认条件的情况下,尽量使用elif来代替else。
6、如果需要多个判断条件都执行并输出结果,则需要使用多个if语句,而
不是使用if-elif-elif-else语句。

八、 布尔表达式boolean:
如: can_edit = true
1、布尔表达式,它与if等条件表达式类似,也是判断true或者false。
布尔表达式一般用于记录条件、配置设置,如游戏是否在运行,用户是否有某权限等

九、 循环语句while :
1、如果while设置的条件没有满足就一直循环到while条件满足为止。
2、每一个while循环都必须设置停止的方法或条件。
3、break:以while True做开头的循环,一直循环下去,直到break 用来退出当前循环。
break:任何循环也包括for 等其他语句都可以使用break来退出循环。
4、continue:忽略余下的代码,跳回到循环开头,继续执行循环。
5、当一个循环陷入到无限循环,可以使用ctrl键 + c 或关闭终端来终止循环。

十、 函数function : 参数在()里设置
在调用列表或字典中的元素或键时,要先列表后元素,先字典后键。
1、函数title()首字母大写,upper()单词字母全大写,lower()单词字母都小写
使用lower()函数临时转换变量car的元素为小写后,再去比较。
此时lower()不会修改原来变量的实际大小写,只用于比较使用。
2、函数lstrip()头空格删除rstrip()尾空格删除strip()头尾空格删除
3、函数针对列表,append()尾部增加元素,insert()插入元素,
remove()删除元素,也可用del删除,pop()尾部删除元素。
4、函数sort()按字母顺序排序列表,参数reverse=True,代表反序。
orted(),临时按字母顺序排序,不影响表的实际顺序,参数同上。
reverse(),直接以表的当前顺序的倒序打印输出。
len()输出表的元素数量。 这个len()内置函数可以求list,tuple,str的长度都可以。
5、函数range(1,11,3)括号内数字表示起始数字和终止数字及步长,注意终止数字不在range范围内。
如: range(1,5) 代表1,2,3,4
如: range(2,11,2)的第一个2是开始数字,到数字11结束,步长为2。
代表2,4,6,8,10
6、函数list()可以直接调用其他函数并制表。
7、函数min(digits)最小值 max(digits)最大值 sum(digits)和值
7、函数str(alien[‘option’]),返回变量或键的值。
8、函数items(),返回字典键和值,函数keys(),只返回字典的键
函数values(),只返回字典的值,函数set(),对重复的数据进行唯一化。
9、函数list.count(x): 表示x元素在list列表中出现的次数
10、函数,构造函数:list(),tuple()。用来创建或转换列表或元组。
11、函数input(),等待用户在()内的提示字符串后输入信息。
12、函数int(),将字符串转换成数值表示,为了匹配类型,进行比较等。
这个函数只取数据的整数部分
13、函数open(),打开一个文件,(”)内是文件名称,python在当前所在
文件夹查找这个文件—–函数close()与函数open()对应关闭文件。
14、函数read()读取文件的内容
15、split()以空格为分隔符,将字符串分拆成多个部分,并将多个部分
为元素,存储到列表中
16、round()函数是用来让小数位精确到小数点后第几位,如果是负数
则代表要求精确到整数位,-1代表10的整数倍,-2代表100的整数,以此类推

十一、运算符号Modular operator:
1、求模运算符 % :用前边的数字除以后边的数字,不计算结果,只计算余数。

十二、自定义函数function:
1、函数是:带名字的代码块,用于完成一项具体任务的。
通过使用函数,程序的编写,修改,阅读都更清晰
函数可以存储在叫“模块”的独立文件中。
2、函数定义时,()内的是形参,无需‘’。
函数调用时,()是实参,需要使用‘’来指定具体信息。
当有多个形参、实参时:
一种位置实参:是按顺序对应,形参、实参 顺位相同;
一种是关键字实参:如:形参名= 值、列表、字典等。
根据关键字对形参直接赋默认值或空值(此时赋值的形参必须在最后。)
可以使用return语句,将函数值,返回到调用函数的代码行。
当不确定实参数量时,使用(*aaaaa 创建空元组)(**aaaaa创建空字典)
3、函数定义后,要紧跟注释,说明函数的用途,意义
函数参数要使用字符串方式,方便阅读和理解参数的意义。
给形参指定默认值或空值时,=等号两边不用留空格。实参也遵循这个规则。
当形参数量很多时,定义函数名称的( 左括号打完后,回车,然后2个Tab键
缩进,以使方便理解阅读形参内容。
当单个函数模块中有多个函数时,最好每个函数空2行,以便区分。

十三、类class:
1、“面向对象编程” 是最有效的软件编程方法之一.
类分为:
1)普通类:具有类的通用特性
2)父类:是一个大类,对象的基本特性的集合
3)子类:是父类的子类,对父类的补充和完善
4)父类-小类:是从父类里提前出来,对象某些特殊属性或方法的集合。可以
被子类调用并补充和完善子类,协调工作。防止父类的过于臃肿。增加程序
的规范性和扩展性。
2、类是定义一大类“对象”都有的通用行为
基于“类”创建“对象”时,每个对象都自动具备这种“通用行为”。根据需要赋予
每个对象“独特的个性”
根据类来创建对象被称为“实例化”
3、“类” 也可象函数一样存储在模块中,被程序调用
4、根据规定,首字母大写的是类。使用了”“”描述类信息”“”。实例使用小写。
5、类中的函数称为方法
6、方法(类中函数)的名称前后加“下划线”init ,这是一个特殊的
方法,每当使用这个类来创建实例时,都自动运行这个方法。
7、这个方法的“第一个形参”必须是self,因为python在调用这个类来创建实例时,
都将自动传入实参self。它是一个指向实例自身的引用,让实例能够访问类中的
属性和方法。
8、以self为前缀的变量可以给类的每个方法使用。可以通过实例访问的变量称为属性
9、使用print输出时,输出结果出现none的问题:
—文件记载:4_类实例继承_父类子类.py
当使用print来输出方法(函数)时,由于print实际并未打印任何东西,输出来自方法(函数)
自带的print输出的,因此,这里的print未输出任何结果,则默认返回none

十四、模块module:
1、函数、类等都可以单独存放在模块中,方便维护和程序调用。
模块是单独的**.py文件。
2、在**.py文件的开始第一行应该使用模块级字符串说明该模块的用途、功能
“”“这个模块是汽车类”“”
3、模块调用(导入)命令一般如下:
from car import Car
(含义 :从car.py导入Car这个类)
4、每个模块内都可以存储多个类或函数,可以同时调用多个类或函数,用逗号分开
from car import dianchi,diandongche
(含义 :从car.py导入dianchi、diandongche这个类)
(当然在程序里调用时,要分别体现)
5、句点表示法: 当需要导入模块内多个类或函数时,推荐使用这个方法
from car 导入整个模块car
my_biaozhi = car.Car(‘biaozhi’,’3008’,’2014’)–调用类CAR
my_tesla = car.ElectricCar(‘tesla’,’roadster’,’2016’)–调用类lectricCar
6、编码风格:
类:名称使用驼峰命名法,即每个单词首字母大写,而不使用下划线。
模块和实例: 名称使用小写,并且单词间使用下划线连接。
空行:1个空行分隔方法,2个空行插入在多个类或函数之间,来分隔不同类或函数。
导入模块:同时导入标准库模块和自定义模块时,先import标准库模块,空一行再import自定义模块。

十五、文件file:
1、处理文件,使程序可以快速分析大量文件数据
2、读取文本时,python将其所有文本都读解为字符串,如果你读取的是数字,并作为数值使用
就必须使用函数int()将其转换为整数,或函数float()转换为浮点数。
3、使用open()打开文件时,可以选择对文件的操作模式,默认是只读模式’r’
还有’w’写入,’r+’读写,’a’附加模式 (在文件的末尾增加新的内容)。
注意:当你的文件不存在时,如果启用了’w’模式,将创建一个新的文件。
并且在执行python程序时,返回文件对象前,清空该文件。(删除了原有的文件内容)
4、遇到一个问题,在读取有中文的TXT文档时,对文档执行代码出现编码格式不匹配问题。
‘gbk’ codec can’t decode 提示原来的文档使用了GBK编码,无法读取、执行脚本。
在open()参数里加入encoding=’UTF-8’,确保使用UTF-8来解码TXT文档,这样pycharm
和python都可以正确读取、执行脚本,编译TXT文档了。 4_file_analysis.py

十六、异常 :try-execpt 语句
1、异常:python创建的特殊对象,用于管理程序运行时的错误
2、每当发生错误,都创建一个异常对象,如果已经编写了处理该异常的代码
则程序继续进行,否则,程序停止,并显示traceback的异常报告。
3、异常是使用try-execpt代码块来处理的。—首先要预判可能出现的错误代码
使用try-execp代码块的好处:
1)即使程序异常,也能继续运行
2)并显示编写好的友好的错误消息,而不是令人迷茫的traceback信息
或使用pass语句,不显示任何信息,继续执行其他脚本内容。
4、try-except else语句,我自己把except理解成if来分析语句的逻辑。6_json_2.py

十七、模块json:
1、它用来保存用户数据,防止程序运行结束后数据丢失
2、json.dump() 抓取数据并保存到**.json文件中
3、json.load() 读取、加载**.json文件中的数据

十八、测试代码test code
1、为保证我们写的代码能正常运行,需要经常测试代码
2、使用unittest工具来测试代码
3、测试用例创建的class类要继承unittest.TestCase父类
常用的断言机制:
=====================================================
方法 用途
assertEqual(a,b) 核实a == b
assertNotEqual(a,b) 核实a != b
assertTrue(x) 核实x为True
assertFalse(x) 核实x为False
assertIn(item,list) 核实item在list中
assertNotIn(item,list) 核实item不在list中
4、试创建的class类,设置一些方法,利用一些断言机制,来判断代码的正确性。
通过OK,未通过False 。
5、在创建的测试用例中,测试方法def test_被默认执行。
6、在创建的测试用例中,测试方法def setUp(),优于def test_ 方法
并且方法def setUp()中创建的一系列实例、对象
设置为self属性,可以提供给所有方法使用。test_class(survey).py
7、测试用例执行结果
. 代表测试通过
E 代表测试错误
F 代表断言失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值