Python简要复习

Python程序设计复习

Python基础知识

python的特点

兼具编译型解释型特性,兼顾过程式、函数式和面向对象编程范式的通用编程语言

解释型语言无需像编译型需要一次性的编译成机器码,然后运行,而是由名叫解释器的程序动态的将源代码逐句转化成机器代码执行

.py->.pyc

python环境中Python会将.pyc文件存储在__pycache__的目录下,并在文件名中加入Python版本标识字段

当运行源文件时,Python会先在相应位置寻找.pyc文件,找到.pyc后查看是否有改动,若有改动需要重新编译成字节码

Python程序无法一次性编译成机器码,是先变成字节码.pyc,然后由python虚拟机解释执行

pip包管理器

pip help #列出pip的子命令
pip install <packkage>
pip install <package>==<version>
pip uninstall <package>
pip list

python脚本

#!/usr/bin/env python

注意条件判断语句

if __name__=='__main__'

__name__ 是python的内置属性,是系统全局变量!每一个py文件都有一个属于自己的__name__

如果py文件作为模块被导入(import),那么__name__就是该py文件的文件名(也称 模块名);

如果py文件直接运行时(Ctrl+Shift+F10),那么__name__默认等于字符串__main__;

复合数据类型

列表

列表是若干对象的集合,其中的类型可以是不同的

In [1]: x=[1,3.14,"hello"]In [2]: x
Out[2]: [1, 3.14, 'hello']

列表也是可变对象,指在对象创建后它的值仍能被修改

列表切片

使用冒号分割两个下标,分别代表起始下标(包含)和终止下标(不包含)

In [13]: x=[1,3.14,"hello"]In [14]: a=x[0:-1]In [15]: a
Out[15]: [1, 3.14]

列表常用方法

list.append(x)
list.extend(x) #将序列x中的所有元素依次添加至列表List的尾部
list.insert(index,x)#在列表指定位置插入对象x
list.pop([index])#删除尾部或者指定位置的元素
list.remove(x)#在列表中删除首次出现的指定元素x
list.clear#删除列表中的所有元素
list.index(x)#返回x元素的下标
list.count(x)#返回指定元素x的出现次数
list.sort()#对列表元素进行正序排列
list.reverse()
list.copy()#进行浅拷贝
In [22]: x
Out[22]: [1, 3.14, 'hello']In [23]: x.append('world')
In [25]: x
Out[25]: [1, 3.14, 'hello', 'world']
In [26]: a=[1,2,3]In [27]: x.extend(a)In [28]: x
Out[28]: [1, 3.14, 'hello', 'world', 1, 2, 3]

列表推导式

In [29]: a=[i for i in [1,'2','3']]In [30]: a
Out[30]: [1, '2', '3']
In [31]: [(i,j)for i in range(10) if i!=5 for j in range(3) if j>=2]
Out[31]: [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2)]

元组

tuple是任意对象组成的序列,不支持原地修改,即元组已经创建,其中的元素用任何方式无法改变(不可变特性)

In [33]: x=(1,2,3)In [34]: x
Out[34]: (1, 2, 3)In [35]: y=tuple()In [36]: y
Out[36]: ()

注意:元组无sortreverse方法

但是有sortedreversed方法,会返回一个新的序列对象

In [56]: x=(1,2,3,(1,2),[1,2,3])In [57]: x
Out[57]: (1, 2, 3, (1, 2), [1, 2, 3])In [58]: x[4][0]=NoneIn [59]: x
Out[59]: (1, 2, 3, (1, 2), [None, 2, 3])
In [61]: x[4]=None
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-61-dd313a01e66b> in <module>
----> 1 x[4]=NoneTypeError: 'tuple' object does not support item assignment

字典

字典是键值对的可变集合

可用不可变对象作为

In [75]: x=dict(zip(keys,values))In [76]: x
Out[76]: {'name': 'lihua', 'age': 12}
In [83]: x.get('name')#获取对应的键的值
Out[83]: 'lihua'In [84]: x.update({'gender':'male'})In [85]: x
Out[85]: {'name': 'lihua', 'age': 12, 'gender': 'male'}

keys() values items()分别对应字典的键、值和对象

键值对不可重复

实际是它的键不可重复

集合

set集合是无序可变序列,使用一对大括号{}界定,不允许重复

>>> a={1,2,3}
>>> type(a)
<class 'set'>
In [110]: a
Out[110]: {1, 2, 3, 4}In [111]: a.remove(5)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-111-fa8c667230ef> in <module>
----> 1 a.remove(5)KeyError: 5In [112]: a.discard(5)In [113]: a
Out[113]: {1, 2, 3, 4}

集合的并交和差集运算

In [113]: a
Out[113]: {1, 2, 3, 4}
In [117]: s={1,3,5}In [118]: a.union(s)
Out[118]: {1, 2, 3, 4, 5}In [119]: a.intersection(s)
Out[119]: {1, 3}In [120]: a.difference(s)
Out[120]: {2, 4}

深浅拷贝

浅拷贝出现在copy函数、列表切片

如果要将嵌套的每一次都拷贝,那就需要deep copy函数

Unicode和字符串

字符是文本的最小组成部分

字符集是人为筛选的多个字符的集合

编码规则是将字符集中的字符转化为可存储的字节序列所按照的标准

UTF-8可变长编码方案

若码位小于127(0x7f) 单个字节表示

码位在128-2047 两个字节

大于2048 三或者四个

汉语通常编译成三个字节

函数

传递实时参数的参数解包

可以用列表 元组 字典 集合等可迭代对象作为实参,并在实参名称前面加个’*’

In [174]: def func(a,b,c):...:     print(a,b,c)...:In [175]: func(*[1,2,3])
1 2 3

如果是字典对象需要在前面加上’**’

'*‘和’**'如果出现在函数定义当中代表接受任意数量的参数,出现在函数调用代表参数解包

lambda表达式

lambda arg1,arg2,...,argN:expression 

执行lambda表达式会生成一个函数对象,可以将其赋给变量,供之后调用,这与使用def语句定义函数无区别

In [178]: f=lambda x, y: x + yIn [179]: f(1,2)
Out[179]: 3

全局变量和局部变量

global关键字

迭代器

>>> m=map(lambda x:x**2,[1,2,3])
>>> it1=m.__iter__()
>>> it1 is m
True
>>> it1.__next__()
1
>>> it1.__next__()
4
>>> it1.__next__()
9
>>> it1.__next__()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
StopIteration
#斐波那契函数迭代器
class Fibs:def __init__(self,n=10):self.a=0self.b=1self.n=ndef __iter__(self):return selfdef __next__(self):self.a,self.b=self.b,self.a+self.bif self.a>self.n:raise StopIterationreturn self.a

生成器函数

TODO

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之反向传播

0 特别说明 0.1 学习视频源于&#xff1a;b站&#xff1a;刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容&#xff0c;若有错误欢迎指正&#xff01; 1 forward&#xff08;前馈运算&#xff09;过程 通过输入相应的x和权重w&#xff08;可能涉及bais偏置…

docker push 报错:unauthorized: unauthorized to access repository: library/xx处理方法

rootmaster:/home/data/harbor# sudo docker login 49.0.241.2 admin Harbor12345 1.报错原因分析 rootmaster:/home/data/harbor# docker push 49.0.241.2/library/nginx:latest #这种报错 The push refers to repository [49.0.241.2/library/nginx] Get "https://49.…

UE5 C++ SplineMesh蓝图函数库实现(小白笔记)

UE5 C SplineMesh的蓝图函数库实现方法 UAAABlueprintFunctionLibrary UAAABlueprintFunctionLibrary.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "Components/Spline…

再探python装饰器

参考视频教学&#xff1a; 可能是b站上最好的Python装饰器教程_哔哩哔哩_bilibili 【python】如何在class内部定义一个装饰器&#xff1f;这里的坑你要么不知道&#xff0c;要么不会填&#xff01;_哔哩哔哩_bilibili 推荐&#xff01;先学习第一个视频&#xff0c;再学习第…

【iOS】多线程 锁问题总结

文章目录 前言1. 你理解的多线程优点缺点 2. atomic 和 nonatomic 的区别及其作用3. GCD的队列类型 - 三种队列类型4. GCD的死锁问题线程死锁的四个必要条件 5. 多线程之间的区别和联系6. 进程和线程&#xff1f;进程间的通信方式线程间的通信方式 6. iOS的线程安全手段如何保证…

2023年电赛---运动目标控制与自动追踪系统(E题)OpenMV方案

前言 &#xff08;1&#xff09;废话少说&#xff0c;很多人可能无法访问GitHub&#xff0c;所以我直接贴出可能要用的代码。此博客还会进行更新&#xff0c;先贴教程和代码 &#xff08;2&#xff09; <1>视频教程&#xff1a; https://singtown.com/learn/49603/ <2…

k8s kubeedge安装metrics-server监控节点cpu内存使用情况

k8s kubeedge安装metrics-server监控节点cpu内存使用情况 官方安装地址: https://kubeedge.io/en/docs/advanced/metrics/ k8s的master节点上安装metrics-server #在k8s的master节点上执行#创建目录 mkdir metrics-server #下载deploy文件 wget https://github.com/kubernet…

JavaWeb 项目实现(四) 验证旧密码

1.验证旧密码 步骤很简单&#xff0c;从Session中取到当前密码&#xff0c;和修改密码界面得到的旧密码对比&#xff0c;判断是否相等。 特别之处在于实现用到了Ajax&#xff0c;可以不刷新整个页面的情况下与Web服务器进行通信。 2.Ajax Ajax&#xff08;Asynchronous Java…

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式&#xff1a;做格式校验包装类&#xff1a;在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中&#xff0c;掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开&#xff0c;帮助读者更好地面对面试挑…

无涯教程-jQuery - Menu组件函数

小部件菜单功能可与JqueryUI中的小部件一起使用。一个简单的菜单显示项目列表。 Menu - 语法 $( "#menu" ).menu(); Menu - 示例 以下是显示菜单用法的简单示例- <!doctype html> <html lang"en"><head><meta charset"utf-…

Vue2 第十节 内置指令和自定义指令

1.之前学过的指令 2. 内置指令 3. 自定义指令 一.之前学过的指令 指令名用法v-bind单项绑定解析表达式&#xff0c;可以简写为:xxxv-model双向绑定v-for遍历数组/对象/字符串v-on 绑定监听事件&#xff0c;可以简写为v-if条件渲染&#xff08;动态控制节点是否存在&#xf…

基于ANACONDA安装用于Python编程的Spyder集成开发环境的方法步骤详解

基于ANACONDA安装用于Python编程的Spyder集成开发环境的方法步骤详解 Python作为一种当下流行的编程语言&#xff0c;其编辑器有很多种&#xff0c;本文介绍基于ANACONDA的安装Spyder编辑器的方法步骤。Spyder集成开发环境&#xff0c;和其他的Python开发环境相比&#xff0c;…

C++——类与对象(中)

目录 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数取地址及const取地址操作符重载 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时…

TCP三次握手与四次断开

TCP三次握手机制 三次握手是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。 1、客户端发送建立TCP连接的请求报文&#xff0c;其…

物理分代垃圾回收器

内存结构 内存分配 堆上分配 大多数情况在eden【年轻代中的一个区域】上分配&#xff0c;偶尔会直接在old【老年代】上分配&#xff0c;细节取决于GC的实现。栈上分配&#xff08;发生了指针逃逸&#xff0c;又叫指针逃逸分析——JVM优化&#xff09; 原子类型的局部变量。 G…

eclipse 最新版没有navigator视图如何解决

使用project exploere视图可以显示类似navigator视图 1.显示project exploere视图 window---->show view --->project exploere 2.project exploere视图转换为类似navigator视图 第一步&#xff1a;点击视图右上角三个点或者倒三角&#xff0c;点击fiters and custom…

3DEXPERIENCE用户角色 | Structural Mechanics Engineer 结构力学工程师

真实条件下实施复杂的线性和非线性分析 直观验证设计并更快地做出产品决策 Structural Mechanics Engineer 在基于云的 3DEXPERIENCE 平台上构建&#xff0c;您可对产品行为执行结构线性和非线性静态、低速和高速动态和热仿真。具备材料校准功能&#xff0c;有助于确保材料行为…

Python教程(6)——Python变量的基础类型。|整数类型|浮点数类型|字符串类型|布尔类型|

学习编程语言&#xff0c;不得不忽视变量这个概念。Python 中的变量是用于存储数据的名称&#xff0c;你可以将值赋给变量&#xff0c;并在程序的其他地方使用该变量来引用该值。变量在程序中起到存储和操作数据的作用。 如果学过C/C语言的同学&#xff0c;定义了变量后&#…

无涯教程-Lua - repeat...until 语句函数

与 for 和 while 循环(它们在循环顶部测试循环条件)不同&#xff0c;Lua编程中的 repeat ... until 循环语言在循环的底部检查其条件。 repeat ... until 循环与while循环相似&#xff0c;不同之处在于&#xff0c;保证do ... while循环至少执行一次。 repeat...until loop - …

通过案例实战详解elasticsearch自定义打分function_score的使用

前言 elasticsearch给我们提供了很强大的搜索功能&#xff0c;但是有时候仅仅只用相关度打分是不够的&#xff0c;所以elasticsearch给我们提供了自定义打分函数function_score&#xff0c;本文结合简单案例详解function_score的使用方法&#xff0c;关于function-score-query…