python 基础二(学习打卡)
python 基础二(学习打卡)
python基础知识
- python 基础二(学习打卡)
- 一.None值
- 二.函数返回多个值
- 三.局部变量和全局变量
- 四.异常处理(内含Zigzag代码)
- 五.列表
- 六.字典
- 七.类
一.None值
在python中有一个值称为None,它表示没有值,就像bool值True 和 False一样,None的首字母 N必须大写。print()函数的返回值就是None。
spam=print('Hello')
None==spam##输出True
对于所有没有return语句的函数定义,Python 都会在末尾加上 return None
,而且使用不带值的Return 语句(也就是return 关键字本身),也返回None。
二.函数返回多个值
python函数可以返回多个值
def divid(a,b):shang=a//byushu=a%breturn shang,yushu
sh,yu=divid(5,2)
当python返回多个值的时候,赋值时也要有同样多的变量来接收。
三.局部变量和全局变量
1.名字相同的局部变量和全局变量
def spam():egg = 'spam local'print(egg)def bacon():egg = 'bacon local'print(egg)#print 'bacon local'spam()print(egg)#print 'bacon local'egg='global'
bacon()
print(egg)##print 'global'
输出结果如下:
bacon local
spam local
bacon local
global
从技术上讲,在Python中让局部变量和全局变量同名是完全合法的,但想要程序简单就得避免这么做,因为这3个独立的变量都有相同的名字egg,追踪某一个时刻使用的是哪一个变量,可能会比较麻烦。
2.global语句
在一个函数内修改全局变量,就使用global语句。
def spam():global eggegg = 'spam local'egg='global'
spam()
print(egg)##print 'spam local'
因为egg在spam函数的顶部被声明为global,所以当egg被赋值为‘spam local’时,赋值发生在全局作用域的egg上,没有创建egg局部变量。
四.异常处理(内含Zigzag代码)
在Python中遇到异常或者错误,就意味着整个崩溃,在真实世界的程序中,希望程序能检测错误,处理它们然后继续运行。
例如,运行下面程序,它有一个“除数为0”的错误
def spam(di):return 40/diprint(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
运行结果如下:
20.0
3.3333333333333335
ZeroDivisionError: division by zero
当试图用一个数除以0时,就会发生ZeroDivisionError
错误。错误可以由try
和except
语句来处理,可以将前面除数为0的代码放在一个try语句中,如果错误发生,程序执行就转到接下来的except子句开始处。
def spam(di):try:return 40/diexcept ZeroDivisionError:print('Error')
print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
结果如下:
20.0
3.3333333333333335
Error
None
40.0
如果在try子句中的代码导致一个错误,程序执行就立即转到except子句的代码中,在运行那些代码之后,执行照样继续。
Zigzag 描述:创建往返的锯齿状图形,直到用户按Ctrl-C快捷键停止它为止
分析:在运行Python程序的同时按Ctrl-C快捷键会引发KeyboardInterrupt
异常,因此我们可以用try,except语句来终止程序。这样即使主程序循环是一个无限循环,用户也可以关闭程序。
import time,sys
indent=0
indentIncreasing = True
try:while True:print(' '*indent,end=' ')#会输出indent个空格print('******')time.sleep(0.1)##循环输出休眠100毫秒if indentIncreasing:indent=indent+1if indent==5:indentIncreasing=Falseelse:indent=indent-1if indent==0:indentIncreasing=True
except KeyboardInterrupt:sys.exit()
运行结果:
************************************************************************
五.列表
知识点:列表的正负索引,len()函数取得列表长度,del 语句从列表删除值,比如:
spam=[1,2,3,4]
del spam[2]
print(spam)##[1, 2, 4]
1.列表的连接和复制:
['x','y','z']*3
[1,2,3]+['a','b','c']
2.enumerate()
函数
在for循环中不用range(len(list))获取列表中各表项的整数索引,还可以调用enumerate()函数,返回列表中表项的索引和列表中的表项本身两个值。
s=[1,2,3,4]
for index, item in enumerate(s):print(index,item)
3.list一些常见函数:
函数名 | 用处 |
---|---|
index() | 在列表中查找值,返回索引 |
append() | 将参数添加在列表末尾 |
insert(index,参数) | 将参数添加在相应的index处 |
remove() | 从列表中删除值 |
reverse() | 反转列表中的值 |
4.sort()函数
对列表进行排序,当指定reverse关键字为True时,是逆序排序
spam=[3,5,1,10]
spam.sort()
spam##[1, 3, 5, 10]
spam=[3,5,1,10]
spam.sort(reverse=True)
spam##[10, 5, 3, 1]
不可用spam=spam.sort()记录返回值,因为sort()方法不返回列表。
sort()默认使用“ASCII”字符顺序排序,也就是大写字母排在小写字母之前,但加上key关键字的参数,就可以将小写字母排在大写字母之前。
spam=['a','Z','z','A']
spam.sort(key=str.lower)
spam##['a', 'A', 'Z', 'z']
这里其实是将所有表项都当成小写去排序,但实际上并不会改变她们在列表中的值。
注意:字符串和元组是不可变数据,列表是可变数据。
六.字典
user={'username':'xiao ming',
'id':2038871
'age':18
}##创建字典
for key,value in user.item()##遍历字典的键和值
for key in user.keys()##变量字典的键
for value in user.value()##遍历字典的值
七.类
1.创建一个类的简单实例
class Dog:"""一次模拟小狗的简单尝试"""def __init__(self,name,age):"""初始化属性name和age"""self.name=nameself.age=agedef sit(self):"""模拟狗收到命令蹲下"""print(f"{self.name} is now sitting.")def roll_over(self):"""模拟小狗收到命令时打滚"""print(f"{self.name} rolled over.")
my_dog=Dog('bai',3)
my_dog.sit()
类的定义没有圆括号,因为要从空白创建这个类
__init__()##注意此写法是一边两个下划线,不然会报错
相当于c++类和对象中的构造函数,在创建实例的时候,python都会自动运行它,参数self必不可少,而且必须位于其他形参前面。
2.继承
编写类时,并非总是要从空白开始,如果要编写的类时另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原有的类称为父类,而新有的类称为子类。子类继承了父类所有属性和方法,同时还可以定义自己的属性和方法。
class Car:def __init__(self,make,model,year):self.make=makeself.model=modelself.year=year
class ElectricCar(Car):def __init__(self,make,model,year):"""初始化父类的属性再初始化电动汽车特有的属性"""super().__init__(make,model,year)self.battery=75def describe_battery(self):print(f"This car has a {self.battery}-KWh battery")
my_car=ElectricCar('teala','model s',2022)
my_car.describe_battery()
super()函数可以调用父类中的方法,父类必须包含在当前文件中,且位于子类前面。
3.重写父类方法
假设car有一个fill_gas()的方法,它对于电动汽车来说毫无意义,因此可以在子类重写,如果有人对电动汽车调用fill_gas()方法,python将忽略Car中的,转而运行子类中的方法,这样使用继承时,可让子类保留从父类那里继承而来的精华,并剔除不需要的糟粕。
python 基础二(学习打卡)相关推荐
- python基础一(学习打卡)
python基础一(学习打卡) 文章目录 python基础一(学习打卡) 一.数据类型 二.运算符 三.内置函数 四.变量 五.控制流语句 一.数据类型 **·**整数int:-3,-2,0,2- * ...
- Python基础组队学习
文章目录 Python基础组队学习 Task1变量.运算符与数据类型及位运算 练习题 Task2 条件语句,循环语句 练习题 task3异常处理 练习题 task4列表.元组和字符串 列表 练习题 列 ...
- Python基础的学习和简单爬虫的编写
一.Python基础的学习 观看B站up GenJi是真的想教会你 的视频结合RUNOOB.COM进行学习 二.简单爬虫的编写 爬虫实现的功能: 爬取豆瓣电影top250的电影名称.电影信息.评分.评 ...
- Python基础语法学习笔记
Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...
- Python 基础知识学习笔记——NumPy
Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...
- Python 基础知识学习笔记——OpenCV(1)
Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...
- Python基础知识学习笔记——Matplotlib绘图
Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...
- python基础知识学习笔记(1)
python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...
- python基础教程自学网-Python基础系统管理学习手册视频教程
Python 当前位置:主页 > 编程教程 > Python > Python基础&系统管理&学习手册视频教程 Python基础&系统管理&学习手册视 ...
最新文章
- 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
- 华为ensp小实验(路由下发+Easy IP+单臂路由+OSPF+Rip)
- org.springframework.hateoas.mvc.ControllerLinkBuilder之ClassNotFoundException的错误
- ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建
- .gitignore和“以下未跟踪的工作树文件将被签出覆盖”
- Hadoop 服务器配置的副本数量 管不了客户端
- 5-21 求前缀表达式的值(25分)
- 图像处理:同态滤波(Homomorphic filter)
- 使用python生成 gif 格式的动图
- 《MTP中高层实战管理专家周黎辉》
- ionic3 m3u8在线播放工具,在线播放
- c语言工程师专业分析,一个资深c语言工程师说如何学习c语言.pdf
- 饿了么高级设计师:界面视觉设计 5 要素
- 初试 Coding.net 在线IDE——WebIDE
- 博基计划(4)---近红外光谱过程分析中基线漂移的主要来源
- ffmpeg——压缩mav格式音频
- QT里面Q_PROPERTY的使用
- 聊聊iOS中的网络加密
- 电脑小技巧:win10我的电脑图标怎么调出来
- Android访问https链接
热门文章
- [Linux] 压缩、解压文件夹命令
- 电路计算机为什么要规定方向,为什么要在电路图规定电流的参考方向,实际方向有什么关系与...
- Werkzeug 教程
- shell 编程之流程控制语句详解
- html页面设计成占满屏幕,关于html页面布局
- 【rabbitMQ】01 全面理解rabbitMQ
- Python之日期与时间处理模块(date和datetime)
- 就业前必须知道的那些事!【超干货,持续更新编辑】
- 阿里云全球化云网络,保障北京冬奥全球“云转播”
- 计算机二级c语言考点总结,全国计算机二级C语言考点总结.doc