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)!