Python范例总结
一、基础功能
1、操作符
- and 拥有更高优先级,会先行运算。
- 优先级顺序为 NOT、AND、OR。
2、列表
1)列表拼接
l1 = [1,2,3]
l2 = [4,5,6]# 方法1
# l1 = l1 + l2# 方法2
# l1[len(l1):len(l1)] = l2# 方法3
l1.extend(l2)
print(l1)
3、函数
1)范例1
def greetPerson(*name):print('Hello', name)greetPerson('Runoob', 'Google')
##结果为Hello ('Runoob', 'Google')
2)范例2
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
x = True
def printLine(text):print(text, ' Runoob')
printLine('Python')
##Python Runoob
3)范例3
def Foo(x):if (x==1):return 1else:return x+Foo(x-1)#n+n-1+1
print(Foo(100))
##结果是5050
4、类
1)私有字段/方法
在Python中,属性和方法的访问权限只有两种:公开的和私有的。如果希望是私有的,在命名时可以用两个下划线作为开头。
Python并没有从语法上严格保证私有属性或方法的私密性,它只是给私有属性和方法换了一个名字来“妨碍”对它们的访问,事实上如果你知道更换名字的规则仍然可以访问到它们。
不建议将属性设置为私有的,因为这会导致子类无法访问。所以大多数Python程序员会遵循一种命名惯例就是让属性名以单下划线开头来表示属性是受保护的,本类之外的代码在访问这样的属性时应该要保持慎重。这种做法并不是语法上的规则,单下划线开头的属性和方法外界仍然是可以访问的,所以更多的时候它是一种暗示或隐喻。
class JustCounter:__secretCount = 0 # 私有属性,前缀两个下划线publicCount = 0def count(self):self.__secretCount += 1 # 类内部调用私有属性self.publicCount += 1print(self.__secretCount)def __print1(self): # 私有方法,前缀两个下划线print('This is a private method!')def print2(self):self.__print1() # 类内部调用私有方法counter = JustCounter()print(counter.publicCount)# print counter.__secretCount # 报错,实例不能访问私有属性
print(counter._JustCounter__secretCount) # 可以通过( 对象名._类名__私有属性名 )访问私有属性
counter.count()
# counter.__print1() # 报错,实例不能访问私有方法
counter._JustCounter__print1() # 可以通过( 对象名._类名__私有方法名 )访问私有方法
counter.print2()
二、进阶功能
1、函数
1)偏函数
import functools
def func(a1,a2):print(a1,a2)new_func = functools.partial(func, 666) ##666 传给第一个参数
new_func(999)
##结果 666 999
2)__开头的函数有很多
当把面向对象中的所有__函数__实现时,对象做任何操作时,都会执行其中对应的方法
举例1__add__
class Foo(object):def __init__(self, num):self.num = numdef __add__(self, other):data = self.num + other.numreturn Foo(data)obj1 = Foo(1)
obj2 = Foo(2)v = obj1.num + obj2.numprint(v)
## 结果是3
3)链chain
将每个列表的函数(功能)拼接到一个大的列表中,依次执行
from itertools import chaindef f1(x):return x + 1func1_list = [f1,lambda x:x-1]def f2(x):return x + 10new_fun_list = chain([f2], func1_list)
for func in new_fun_list:print(func)
列表也可以直接使用chain
from itertools import chainl1 = [11,22,33]
l2 = [44,55,66]new_list = chain(l1,l2)
for item in new_list:print(item)
4)python命令行传参
使用sys.argv传参
sys模块是很常用的模块, 它封装了与python解释器相关的数据,例如sys.modules里面有已经加载了的所有模块信息,sys.path里面是PYTHONPATH的内容,而sys.argv则封装了传入的参数数据。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
gpus = sys.argv[1]
#gpus = [int(gpus.split(','))]
batch_size = sys.argv[2]
print(gpus, type(gpus))
print(batch_size, type(batch_size))
执行python argv_test.py 1,0,2 10
使用argparse传参
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import argparse
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--gpus', type=str, default = None)
parser.add_argument('--batch-size', type=int, default=32)
args = parser.parse_args()
print(args.gpus, type(args.gpus))
print(args.batch_size, type(args.batch_size))
执行:python argv_test.py --gpus=0,1,2 --batch-size=20
2、类
1)继承字典
class MyDict(dict):def __init__(self, *args, **kwargs):super(MyDict,self).__init__(*args, **kwargs)self['modify'] = Trueobj = MyDict()
print(obj)
2)打开/关闭实现:with方法
class SQLHelper(object):def open(self):passdef fetch(self, sql):passdef close(self):pass
### 方法1
# obj = SQLHelper()
# obj.open()
# obj.fetch('selcet * from table1')
# obj.close()### 方法二
with SQLHelper() as obj: #自动调用类中的__enter__方法,obj就是__enter__返回值obj.fetch('selcet * from table1')# 当执行完毕后,自动调用类__exit__方法
3、web框架的本质
1)werkzeug
from werkzeug.wrappers import Request, Response@Request.application
def hello(request):return Response('Hello World!')if __name__ == '__main__':from werkzeug.serving import run_simplerun_simple('127.0.0.1', 40000, hello)
2)wsgi
WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app与web server之间接口格式,实现web app与web server间的解耦。
python标准库提供的独立WSGI服务器称为wsgiref。
from wsgiref.simple_server import make_serverdef RunServer(environ, start_response):start_response('200 OK', [('Content-Type', 'text/html')])return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]if __name__ == '__main__':httpd = make_server('', 8000, RunServer)print("Serving HTTP on port 8000...")httpd.serve_forever()
相关文章:
Python范例总结
一、基础功能 1、操作符 and 拥有更高优先级,会先行运算。优先级顺序为 NOT、AND、OR。 2、列表 1)列表拼接 l1 [1,2,3] l2 [4,5,6]# 方法1 # l1 l1 l2# 方法2 # l1[len(l1):len(l1)] l2# 方法3 l1.extend(l2) print(l1) 3、函数 1)范…...

若依生成主子表
一、准备工作 确保你已经部署了若依框架,并且熟悉基本的开发环境配置。同时,理解数据库表结构对于生成代码至关重要。 主子表代码结构如下(字表中要有一个对应主表ID的字段作为外键,如下图的customer_id) -- ------…...

dotnet4.0编译问题
因为最近在写cobaltstrike的execute-assembly内存加载的c#项目 用visual studio2022编译,最低net只能用6.0版本的,并且execute-assembly不支持 我想使用4.x版本进行编译,因为visual studio不支持,那么使用命令行进行编译 因为要用…...

研一奖学金计划2024/9/23有感
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、需要认真上课的1.应用数理统计(开卷考试)2.最优化方法(开卷考试)3.跨文化交际(主题演讲20课堂讨…...
html知识点框架
一、HTML基础 HTML简介 HTML是一种超文本标记语言,用于创建网页和网页应用。HTML5是公认的下一代Web语言,极大地提升了Web在富媒体、富内容和富应用等方面的能力。HTML基本结构 基本的HTML文档结构包括<!DOCTYPE html>, <html>, <head&g…...

SpringBoot的应用
目录 一、springboot的应用 1、创建springboot项目 2、乱码问题配置 3、springboot日志配置 4、springboot整合mybatis 二、配置文件讲解及测试 1、全局配置文件参数读取 1.1 全局配置文件的位置 1.2 配置文件的读取 1.2.1 导包 1.2.2 编写配置对象Bean 1.2.3 编写配置文件 1.2…...

Spring源码学习:SpringMVC(3)mvcannotation-driven标签解析【RequestMappingHandlerMapping生成】
目录 前言mvc:annotation-driven标签概述mvc:annotation-driven标签解析【RequestMappingHandlerMapping生成】AnnotationDrivenBeanDefinitionParser#parse (解析入口)RequestMappingHandlerMapping的实例化类图afterPropertiesSetAbstractHandlerMetho…...

2024 Redis 全部
1. 单机部署 1.1 检查环境,创建目录。 # 本地运行,不需要考虑安装的原因,可以卸载防火墙 # 关闭防火墙 systemctl stop firewalld.service# 查看防火强状态 firewall-cmd --state# redis 是基于gcc 环境的,查看是否有 gcc 环境 …...
[SDX35+WCN6856]SDX35 + WCN6856 WiFi可以up起来之后无法扫描到SSID
SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…...

VisualStudio如何卸载Resharper插件?
本来按理说,卸载插件应该就是在扩展下的已安装插件中,找到该插件,点一下就会出现卸载的按钮的。 没想到这个Resharper这么吊,卸载按钮居然是个灰色的,意思就是此路不通,有特权的。 那么这种情况下&#x…...

Unity Debug时出现请选择unity实例
Unity Debug时出现请选择unity实例 问题描述 出现请选择unity实例,并且选择框里为空。 出现原因 你打开了两个Unity工程,在附加时,不知道加在哪个Unity工程上。 解决方法 在调试窗口中点击“附加Unity调试程序”,然后在弹出…...

国庆出行新宠:南卡Pro5骨传导耳机,让旅途不再孤单
国庆长假即将来临,对于热爱旅行和户外运动的朋友们来说,一款适合旅行使用的耳机无疑是提升旅途体验的神器。今天,我要向大家推荐一款特别适合国庆出行的耳机——南卡Runner Pro5骨传导耳机。作为一名热爱旅游的体验者,我强烈推荐南…...
2024.09.18 leetcode 每日一题
二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 https://leetcode.cn/problems/add-binary/description/ 代码一,尝试使用笨办法,会造成溢出 class Solution { public:string addBinary(string a, string …...

快递物流短信API接口代码
官网:快递鸟 API参数 用户信息类 一.短信模版 1.接口说明 使用快递鸟短信功能时,预先设置好短信模板和对应的发送规则,快递鸟短信API将根据设置的好的模板和规则,进行短信的发送和反馈。 (1)仅支持Json格式。 (2)请求指令810…...

人工智能-机器学习-深度学习-分类与算法梳理
目前人工智能的概念层出不穷,容易搞混,理清脉络,有益新知识入脑。 为便于梳理,本文只有提纲,且笔者准备仓促,敬请勘误,不甚感激。 请看右边目录索引 。 人工智能 三大派系 符号主义(Symbolists…...
Xinference:深度学习模型推理与优化指南
目录 1. 什么是 Xinference? 2. 使用 Xinference 进行模型推理 2.1 安装 Xinference 2.2 模型推理示例 3. 提高模型推理的效率和性能 3.1 模型量化 3.2 并行处理 3.3 批量处理 4. 启用网页端(如果支持) 5. 在 CPU 中的注意事项 6. …...

Windows 2003系统的防护技巧,禁止IPC$空连接
一、修改管理员帐号和新建“陷阱”帐号 多年以来,微软一直在强调建议重命名Administrator账号并禁用Guest账号,提高计算机的安全性。Windows Server 2003系统,Guest 账号是默认禁用的,管理员账号默认是Administrator,…...

Kubernetes 深入浅出系列 | 容器剖析之容器基本实现原理
一、容器基本实现原理 Docker 主要通过如下三个方面来实现容器化: ① 使用操作系统的 namespace 隔离系统资源技术,通过隔离 网络、PID 进程、系统信号量、文件系统挂载、主机名和域名,来实现在同一宿主机系统中,运行不同的容器&…...

【学习笔记】TLS/SSL握手
前言:本篇将介绍TLS握手的实际握手过程,TLS握手创建了Client和Server之间“被保护的通道”,2个单向通道用来保护批量数据的传输(通过Confidentiality、Integrity和Authentication),一个通道是从Client到Ser…...
ESP32-TFT_eSPI.h文件的使用心得(包含画图相关函数)
目录 前言 环境:arduino 芯片:ESP32 一、Arduino中的使用 #include <TFT_eSPI.h> TFT_eSPI tft TFT_eSPI();tft.init();//初始化tft.setRotation(0); //屏幕旋转方向tft.fillScreen(TFT_BLACK);//底色tft.setTextSize(2); …...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...