自学内容网 自学内容网

Python基础学习笔记

Python是编译一行运行一行,每行结束后面不需要加";"表示结束

表示一个数的次方时用两个"**",比如2的平方: 2**2

用#开头表示单行注释, 用三引号"""  """来表示多行注释

字符串可以被双引号或单引号包裹

用print打印时print('giao') 或 print("giao")均可

None表示空

type()会返回所给的类型: type("hello")会返回str

Python有个交互模式,每次写完一行代码就可以立即看到这行的运行结果

交互模式里的命令不会被保存

输入python3会进入交互模式,输入quit()会退出,或者直接按control+d 退出

用input()方法获取用户的输入,返回值一律是str,()中间可以添加提示信息

整数不能和str一块打印可以转换类型: str(2),等等的类型转换: float("giao")

int float 等是格式转换函数

if和else语句后面跟的语句要有缩进,根据这来判断这是否为if或else语句的部分

若没有缩进,python则认为判断语句已经结束了

"if a>b :" 不需要括号

判断语句可以嵌套,要注意缩进,一般为四个空格

else if语句简写为elif

这种 : 30 < BMI <= 50 也可以用*

逻辑运算符为 : and or not 对应于 : && || ! 

优先级为 : not  and or 

列表 : 用一个[] 表示空列表, 可以往里面加东西 用append方法添加

例如 shopping_list = []  shopping_list.append("giao")  删除元素为remove方法

例如 shopping_list.remove(), 括号里面放要删除的元素,不存在要删除元素就会报错

用print()可以打印元素

python列表可以存放不同类型的数据,可以用len求长度,也可以通过索引求某个元素

max min方法 sorted会返回排列好的新列表,同时不改变原本列表

字典类似于哈希表 有key value 用花括号表示 例如 address_list = {"小明" : "123", "警察" : "110"}

健的类型必须是不可变的

列表是可变的不能作为健, 元组 tuple是不可变的,用圆括号"()" 例如 example_tuple = ("小明")

由于元组不可变所以添加删除操作都不行

元组可以作为健 例如 : address_list = {("小明" ,23):"123" , "警察" : "110"}

添加字典元素和覆盖为同一操作address_list["警察"] = "187022" 

检查某个健是否存在在字典里 : "健" in 字典名 如果在则返回True 

删除键值对 : del address_list["警察"]

len可以求字典有多少键值对

for循环 : for 变量名(自己取) in 遍历对象(可以为 列表, 字符串, 字典)

range可以表示整数序列 : 例如 range(5,10) 10不在序列里面  : for number in range(5,10)

range(2,10,2),第三个数字表示步长

range(10)其中只有一个值时,起始值默认为0

address_list.keys(),返回字典中的所有健

address_list.values(),返回所有值

address_list.items(),返回所有键值对

用for循环遍历字典时,例如 : for item in address_list.items() 会将键和值组成的元组赋给item

item[0]为姓名,item[1] 为号码

若这样写 for name, number in address_list.items() 则会将姓名给name, 号码给numbe

while循环 : while i < len(list) : 

                       print(i)

                       i+=1#python中没有++,--的操作符

while循环多用于循环次数未知的情况

比for循环更加通用

format方法: message_content = """giaogiao

                                                        yiliwoli{0}

                                                        {1}giao""".format("giao", "yiliwoli")

花括号表示要替换的位置,里面的数字表示会用format()中的第几个数字替换

花括号中也可以为关键词而不是位置,这样format()中的元素位置就不重要了

例如

message_content = """giaogiao

                                     yiliwoli{giao}

                                     {yiliwoli}giao""".format(giao = "giao", yiliwoli = "yiliwoli")

f-字符串: 

message_content =f """giaogiao

                                                        yiliwoli{giao}

                                                        {yiliwoli}giao"""

花括号里的字符串变量会被自动求值

数字也可以对字符串进行格式化

student_gpa = {"邵浩男":3.666, "邵响文":3.666}

for name, gpa in student_gpa.items()

        print("您好{name}, 你当前的GPA为{gpa:2f}")#1:.2f 冒号加".2f"表示打印小数点后两位

函数定义格式 : 

def 函数名(参数列表):

        函数体

        return语句

函数默认返回为None

"//"连续两个除号为除完后向下取整的意思,例如: 3//2 == 1

引入模块的三种方法:

1. import 语句, 例如 : import statistics,使用时其中每个变量或方法时,格式为"模块名. 方法名(或变量名) 例如 statistic.median([12,3,13])

2. from...import...语句, 例如 : from statistic import median, mean, 在使用时就不需要加模块名,例如: median([12,3,13])

3.from...import*:在使用其中所有的方法或变量时都不需要加模块名,此方法不推荐,因为多个模块之间可能产生命名冲突

control+函数名可以查看函数的源代码

pypi.org是个第三方库网站

要安装的话,去到终端输入 pip install 库的名字  就可以安装了

定义类的格式: class 类名: #类名用单词首字母大写来分隔单词(pascal命名法)例如 CustomerOrder

构造函数的格式 : def _init_(self,catname) :#self表示自身,self不需要传入,catname等需要

构造函数中的属性赋值时格式为 : self.name  = "xiaoming",要加上self.才表示为类的属性赋值

方法的第一个参数也是被self 占用,可以让我们在方法里面去修改或获取和对象绑定的属性

字符串*数字表示字符串重复的数字

属性都表示在构造函数中,不单独像java,C++在类的开头写明(目前看是这样)

集成类的格式: class Cat(继承的类)

super()会返回当前子类的父类

python读取文件 : open("文件地址","读取操作",encoding"编码方式"),通常是utf-8的编码方式

例如 f = open("文件地址","读取操作",encoding"编码方式")

f.read()为一次读取整个文件,再调用f.read()为空,因为已经读取到末尾了

f.readline()为读取一行

f.read(10),表示一次读取十个字节

"r"表示读, "w"表示写 不写时默认为r

"a"表示附加内容,即每次写文件时不会清空(w会清空)

r+表示同时支持读写,切不会清空,是附加

f.randlines()会读取全部文件的内容,并返回由每行组成的字符串列表,通常与for循环搭配使用

例如: lines = f.readlines()   for line in lines:   print(line)

f.close(): 关闭文件

另一种关闭文件的方法: with open("文件地址") as f:

                                                对文件的操作

在对文件的操作完成后,文件自动关闭

错误捕捉:try/except语句,格式: try :

                                                                放可能产生错误的语句

                                                except  错误类型(例如ValueError,ZeroDisivionError) :

若直接写except: 后面不加错误类型,则会捕捉所有错误类型

except语句后面跟上else语句和finally语句

else语句会在try中语句没有产生任何错误时执行

finally语句会在无论是否发生错误都会执行

断言:assert后面跟上我们认为为真的布尔语句,若运行时威震则什么也不发生,若发生错误则运行停止

测试库 : unittest自带的

测试代码一般放在独立文件,这样能分开实现代码和测试代码

写测试代码时,若测试代码和实现代码在同一个文件中则引入的语法为 from 文件名 import 函数名/类名

写测试代码 : 写一个开头为Test的类表示为测试用的类 继承unittest.Testcase,这样就能使用继承则这个类的各种测试功能,        在这个类下面可以定义不同的测试用例,每个测试用例都是类下面的一个方法名字必须以test_开头,因为因为unittest这个库会自动搜索以test_开头的方法,并且只把这个当成测试用例

继承的类中有个assertEqual方法,传给其两个参数,若其两个参数相等,则显示测试通过,不等显示不通过,但程序不会停止运行

写好测试用例后在终端写入 python -m unittest 表示运行unittest就会搜索所有继承了unittest的子类Testcase类的子类运行它们中的以test_开头的方法


原文地址:https://blog.csdn.net/2301_79997310/article/details/140621405

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!