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错误。错误可以由tryexcept语句来处理,可以将前面除数为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 基础二(学习打卡)相关推荐

  1. python基础一(学习打卡)

    python基础一(学习打卡) 文章目录 python基础一(学习打卡) 一.数据类型 二.运算符 三.内置函数 四.变量 五.控制流语句 一.数据类型 **·**整数int:-3,-2,0,2- * ...

  2. Python基础组队学习

    文章目录 Python基础组队学习 Task1变量.运算符与数据类型及位运算 练习题 Task2 条件语句,循环语句 练习题 task3异常处理 练习题 task4列表.元组和字符串 列表 练习题 列 ...

  3. Python基础的学习和简单爬虫的编写

    一.Python基础的学习 观看B站up GenJi是真的想教会你 的视频结合RUNOOB.COM进行学习 二.简单爬虫的编写 爬虫实现的功能: 爬取豆瓣电影top250的电影名称.电影信息.评分.评 ...

  4. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  5. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  6. Python 基础知识学习笔记——OpenCV(1)

    Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...

  7. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  8. python基础知识学习笔记(1)

    python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...

  9. python基础教程自学网-Python基础系统管理学习手册视频教程

    Python 当前位置:主页 > 编程教程 > Python > Python基础&系统管理&学习手册视频教程 Python基础&系统管理&学习手册视 ...

最新文章

  1. 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
  2. 华为ensp小实验(路由下发+Easy IP+单臂路由+OSPF+Rip)
  3. org.springframework.hateoas.mvc.ControllerLinkBuilder之ClassNotFoundException的错误
  4. ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建
  5. .gitignore和“以下未跟踪的工作树文件将被签出覆盖”
  6. Hadoop 服务器配置的副本数量 管不了客户端
  7. 5-21 求前缀表达式的值(25分)
  8. 图像处理:同态滤波(Homomorphic filter)
  9. 使用python生成 gif 格式的动图
  10. 《MTP中高层实战管理专家周黎辉》
  11. ionic3 m3u8在线播放工具,在线播放
  12. c语言工程师专业分析,一个资深c语言工程师说如何学习c语言.pdf
  13. 饿了么高级设计师:界面视觉设计 5 要素
  14. 初试 Coding.net 在线IDE——WebIDE
  15. 博基计划(4)---近红外光谱过程分析中基线漂移的主要来源
  16. ffmpeg——压缩mav格式音频
  17. QT里面Q_PROPERTY的使用
  18. 聊聊iOS中的网络加密
  19. 电脑小技巧:win10我的电脑图标怎么调出来
  20. Android访问https链接

热门文章

  1. [Linux] 压缩、解压文件夹命令
  2. 电路计算机为什么要规定方向,为什么要在电路图规定电流的参考方向,实际方向有什么关系与...
  3. Werkzeug 教程
  4. shell 编程之流程控制语句详解
  5. html页面设计成占满屏幕,关于html页面布局
  6. 【rabbitMQ】01 全面理解rabbitMQ
  7. Python之日期与时间处理模块(date和datetime)
  8. 就业前必须知道的那些事!【超干货,持续更新编辑】
  9. 阿里云全球化云网络,保障北京冬奥全球“云转播”
  10. 计算机二级c语言考点总结,全国计算机二级C语言考点总结.doc