【Python】Python3.X笔记

Python小白处理程序异常,就用Python的异常捕获功能处理! 异常处理在之前的学习中我们一直没有接触过。 知道怎么向程序输入一段字符串呢?那么我们在这里提供一个小例子。 在命令行中,我们输入 s = raw_input('Enter something --> ') 我们已经知道如何输入一个字符串了,那么当我们输入 s = raw_input('Enter something --> ') 之后按回车, 然后,我们按下 Ctrl + D 。 这时,我们获得了一个异常情况,EOF -----> en... 阅读详情

⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术、Web3、区块链、答疑解惑、面试辅导以及职业发展。博主创作的 《Web3 实战教程》(点击订阅),已经帮助许多开发者成功铸造 NFT,内容浅显易懂,能够快速对 Web3 相关概念有一个总体认识!

基于Python3.X版本进行学习,笔记如下:

杨辉三角

def triangle(max):
    L=[1]
    n=1
    while n<=max:
        yield L
        L.append(0)
        L=[L[i-1]+L[i] for i,x in enumerate(L)]
        n=n+1

g=triangle(10)
for items in g:
    print(items)

名字格式化

def rightname(name):
    return name[0].upper()+name.lower()[1:]
print(list(map(rightname,['admin','LISA','barT'])))

迭代器

两个基本的方法:iter()和next()

import sys

list=[1,2,3,4]
it=iter(list)
while True:
    try:
        print (next(it))
    except StopIteration:
        sys.exit()

生成器

py中使用了yield的函数被称为生成器generator

生成器只能用于迭代操作,简单说来,生成器就是一个迭代器

在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存

当前所有的运行信息,返回yield的值,

并在下一次执行next()方法时从当前位置继续执行。

排序

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
    return t[1]
L2=sorted(L,key=by_name,reverse=True)
print(L2)

模块

在Python中,一个.py文件就称为一个模块(module)

当一个模块编写完毕,就能被其他地方引用,模块还包括

Python内置模块和来自第三方的模块。

包:

按目录来组织模块的方法。例如新建一个顶层包

mypackage,abc.py模块的名字就变成了mypackage.abc

注意:每一个包目录下面都会有一个__init__.py的文件,这个文件必须存在,否则Python将把这个目录当成

普通目录,而不是一个包。init.py可是一个空文件。

在包下可有多级目录。如mypackage.web.www

命名注意:自己的模块命名时不要和Python的内置模块冲突。

第三方模块使用-PIL

from PIL import Image

im=Image.open('test.png')

print(im.format,im.size,im.mode)

im.thumbnail((200,100))
im.save('thumb.jpg','JPEG')

类

class Student(object):
    """docstring for Student"""
    def __init__(self, name,score):
        
        self.name = name
        self.score=score
    def print_score(self):
            print('%s: %s' % (self.name,self.score))

bart=Student('Bart Simpson',59)

lisa=Student('lisa Simpson',69)
bart.print_score()
lisa.print_score()

继承与多态

继承:
可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只要新增自己特有的方法,也能够把
父类不适合的方法覆盖重写。

注意:静态语言与动态语言的继承体系。动态语言——“鸭子类型”——“file-like object”

使用@property属性

class Screen(object):

    @property
    def width(self):
        return self._width

    @width.setter
    def width(self,value):
        self._width=value

    @property
    def height(self):
        return self._height

    @height.setter
    def height(self,value):
        self._height=value

    @property
    def resolution(self):
        return self.width * self.height
   

s=Screen()
s.width=1024
s.height=768
print(s.resolution)
print(s.width)

链式调用

class Student(object):
    """docstring for Student"""
    def __init__(self, path=''):
        self.__path = path

    def __getattr__(self,path):
        path1=self.__path+path+'/'    
        return Student(path1)

    def __call__(self,*path):
        path1=self.__path+path[0]+'/'
        return Student(path1)
    
    def __str__(self):
        sum =len(self.__path)
        self.__path=self.__path[:sum-1]
        return self.__path

    __repr__=__str__
    

print(Student().user('Bob').repos)
print(Student().status.user.timeline.list)            

枚举

from enum import Enum,unique

@unique
class Weekday(Enum):
    Sun=0
    Mon=1py
    Tue=2
    Wed=3
    Thu=4
    Fri=5
    Sat=6
        
day1=Weekday.Mon

print('day1=',day1)
print('Weekday.Tue=',Weekday.Tue)
print('Weekday[\'Tue\']=',Weekday['Tue'])
print('Weekday.Tue.value=',Weekday.Tue.value)
print('day1==Weekday.Mon ?',day1==Weekday.Mon)
print('day1==Weekday.Mon ?',day1==Weekday.Tue)
print('day1==Weekday(1) ?',day1==Weekday(1))

for name,member in Weekday.__members__.items():
    print(name,'=>',member)

Month=Enum('Month',('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))

for name,member in Month.__members__.items():
    print(name,'=>',member,',',member.value)

单元测试、文档测试

IO

(1)读取文本文件
打开f=open(‘url’,‘r’);----读f.read()将内容读到内存----关闭

f.close()文件使用完毕后必须关闭

使用try…finally来实现文件读写

另一种方法:

with open('url','r') as f:
printf(f.read())

注意所读取的文件大小

(2)读取二进制文件

f=open('url','rb')
f=read()

(3)读取GBK文件

f=open('url','r',encoding='gbk',errors='ignore')
f.read()

(4)写文件

f=open('url','w')
f.write('str')
f.close()

另一种方法:with

with open('url','w') as f:
  f.write('str')

从内存中读取—StringIO和BytesIO

操作文件和目录-os模块 import os shutil模块,os模块的补充

序列化\反序列化

import json
d=dict(name='bob',age=20,score=88)
print(json.dumps(d))

WSGI处理函数

def application(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    body ='<h1>Hello,%s!</h1>' % (environ['PATH_INFO'][1:] or 'web')
    return [body.encode('utf-8')]

Flask框架

!/usr/bin/env python3
-*- coding: utf-8 -*-

from flask import flask
from flask import request


app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    return '<h1>Home</h1>'

@app.route('/signin', methods=['GET'])
def signin_form():
    return '''<form action="/signin" method="post">
              <p><input name="username"></p>
              <p><input name="password" type="password"></p>
              <p><button type="submit">Sign In</button></p>
              </form>'''

@app.route('/signin', methods=['POST'])
def signin():
    # 需要从request对象读取表单内容:
    if request.form['username']=='admin' and request.form['password']=='password':
        return '<h3>Hello, admin!</h3>'
    return '<h3>Bad username or password.</h3>'

if __name__ == '__main__':
    app.run()     
异步IO—消息循环,主线程不断地重复“读取消息-处理消息”
loop=get_event_loop()
  while True:
    event=loop.get_event()
    process_event(event)

asyncio模块-内置对异步IO的支持
改进方法——async/await(py3.5版本开始使用的新语法)

aiohttp—基于asyncio实现的HTTP框架

一文读懂YOLO V5 与 YOLO V4 一文读懂YOLO V5 与 YOLO V4 YOLO之父Joseph Redmon在今年年初宣布退出计算机视觉的研究的时候,很多人都以为目标检测神器YOLO系列就此终结。然而在4月23日,继任者YOLO V4却悄无声息地来了。Alexey Bochkovskiy发表了一篇名为YOLOV4: Optimal Speed and Accuracy of Object Detection的文章。YOLO V4是YOLO系列一个重大的更新,其在COCO数据集上的平均精度(AP)和帧率精度(FPS)分别提高了10% 阅读详情

相关推荐

lidar360 V8.0 & lidar360MLS V8.0雷达点云数据处理软件

机载林业 — 基于机载激光雷达点云数据提取一系列森林结构参数(如:高度分位数、叶面积指数、郁闭度等),分割单木并提取单木参数(包括树的位置、树高、胸径、枝下高、冠幅等属性),利用软件的多种回归分析功能可以结合地面调查数据反演森林生物量、蓄积量等功能参数。还可以生成等高线、山体阴影、坡度、坡向、粗糙度等多种产品。分类 — LiDAR360提供多种分类功能,包括地面点分类、模型关键点分类、选择区域地面点分类、机器学习模型分类(可高效地分离建筑、植被、路灯等通用类别)、深度学习模型分类、自定义深度学习分类等。

2403_83796253的博客 5146

python 迭代器与生成器

迭代器 迭代式访问元素的一种方式,迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter()和next()。 常见的字符串,列表或元组对象都可用于创建迭代器: >>> list=[1,2,3,4,5] >>> it=iter...

weixin_30346033的博客 155

如何用Arduino和HX711压力传感器制作一个简易电子秤(含OLED显示)

本文详细介绍了如何使用Arduino、HX711压力传感器和OLED显示屏制作一个简易电子秤。从硬件连接到软件编程,提供了分步教程,包括核心元件功能解析、接线方法、库安装、模块测试以及关键的校准流程。项目实践性强,适合创客和DIY爱好者学习嵌入式系统与传感器应用。

tea88的博客 535

python next()迭代器完成会引发StopIteration异常

li=[1,2,3,4] it=iter(li) print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) next()完成后引发StopIteration异常 --------------------------------------------------------- for l in ...

weixin_41564683的博客 3万+

【GNSS测试技术(一)】GNSS基础原理介绍

GNSS(全球卫星导航系统)是一种基于卫星信号的定位技术,通过使用分布在地球轨道上的卫星,为用户提供全球范围内的定位、导航和授时服务。

新猿异码的博客 5750

.ipynb文件深度解析:从JSON结构到Jupyter Notebook高效使用指南

在Python开发与数据处理领域,交互式编程正成为探索数据与验证思路的高效方式。Jupyter Notebook作为最流行的交互式环境之一,其默认文件格式.ipynb本质是一个基于JSON的文本文件,内部通过单元格组织代码、说明文字与运行结果。理解其JSON结构,不仅有助于掌握Notebook的存储原理,更能为文件损坏修复、版本控制与自动化转换提供基础。依托对单元格类型、魔法命令及输出可视化的熟练运用,数据分析和数据可视化流程可以变得更为流畅。同时,借助VS Code、nbconvert等工具,开发者能将.

weixin_28839629的博客 343

python笔记.6

迭代器对象可以使用常规for语句进行遍历。访问集合元素的一种方式。

m0_73112826的博客 88

Maya vray 3S皮肤材质球设置与材质节点连接

Maya vray 3S皮肤材质球设置与材质节点连接

WETQETF的博客 2696

Python 3.x 语言基础笔记

Python 是一种解释型、面向对象、动态类型的高级编程语言,3.x 版本完全兼容 Unicode,语法简洁易读,生态丰富(Web 开发、数据分析、人工智能、自动化等)。# 定义:def 函数名(参数):def add(a, b=0): # b为默认参数(默认参数放最后)"""求和函数(文档字符串)"""return a + b # 返回值# 调用print(add(1, 2)) # 位置参数:3print(add(a=1, b=2)) # 关键字参数:3。

2401_87851627的博客 1073

三维Copula建模进阶:从对称、嵌套到Pair-Copula(C-Vine/D-Vine)到底怎么选?

本文深入探讨三维Copula建模的进阶策略,包括对称Archimedean、嵌套结构和Vine Copula(C-Vine/D-Vine)的选择方法。通过对比数学特性、计算复杂度和实际应用案例,提供了一套针对金融风险分析等场景的决策框架,帮助分析师根据数据特征选择最优模型。

weixin_27038701的博客 435

SAP 系统间 SSO 的真正价值,从 SM59 到可信 RFC 的安全设计

SAP S/4HANA系统间Single Sign-On(SSO)的核心价值在于集中管理通信身份与信任关系,而非仅减少密码输入。传统固定账号密码方式在系统规模扩大后会面临密码管理、审计追踪等挑战。通过SM59配置可信RFC目标系统,结合SSL证书或SAP Trusted System等强认证机制,能有效降低安全凭据暴露风险。SSO配置需配合授权对象、角色管理等建立清晰的信任边界,实现系统间安全通信的同时保持可审计性。这种方案特别适用于Fiori前端与S/4HANA后端等场景,通过可信RFC传递用户身份,避免

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1060

Python3.X学习笔记

1.print需要添加括号: print("Hello World!") 2.Python3.X不存在raw_input,而是input代替了。原来的input可以用eval(input())代替。

heirenheiren的专栏 736

手把手教你实现RK3588的Secure Boot:密钥烧录与镜像签名验证

摘要:本文详细介绍了瑞芯微RK3588平台下SecureBoot的密钥烧录与镜像签名验证实现方法。首先阐述了SecureBoot的工作原理、安全优势及其在RK3588智能安防、工业控制等场景中的重要作用。接着分步骤指导了硬件准备、软件工具配置、密钥对生成等准备工作,并详细说明了进入烧录模式、工具选择配置、密钥烧录执行等关键操作流程。文章还解析了镜像签名生成与验证机制,包括启动验证流程和常见故障处理方法。最后对SecureBoot在RK3588设备中的未来应用进行了展望,强调其与TrustZone等安全技术融

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2043

Python 3.x 与Python 2.x 的不同点汇总笔记

Python3.x 相对于Python2.x 有了些许改动,这样在用最新版Python3学习那些经典的教程(通常都是Python2版本的),运行例子的时候总容易报错,但是既然是新的版本就是对之前的版本有更新改进的,用新版本编程肯定会是大的趋势,下面总结常见的区别内容。          1.open(filename, 'w')函数          Python2 中 open(

小枫的网络日志 831

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python3.x selenium 笔记

网上很多的滚动条办法,可能是系统间的差异,或者浏览器的差役,导致结果可能不尽人意 我的经常使用的环境是,ubuntu + chrome + chromedirver + selenium + python3.5.2 以下笔记,是给基于上环境的 滚动到指定位置 tagelement = driver..find_elements_by_xpath("//div[@class='_3-kx...

cool_soup29的博客 231

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

简明Python教程笔记四 python3.x

面向对象 1.类 #Filename:PyClass.py class Animal: count = 0 #类成员,所有对象共享 __privateVal = 2 #双下划线代表私有变量,只能在内部函数中调用 def __init__(self,name): #构造函数,self默认加上否则函数中无法调用自己 self.name = name #nam

柒步的专栏 617

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python 3.x 格式化输出字符串 % & format 笔记

https://www.cnblogs.com/cnooye/p/5685670.html

小权的博客 249

简述python2 x与3 x的区别_python2.x与python3.x的区别笔记

1.print的差别,2.x中直接可以用:print a, 3.x中则使用print(a) 因为在3中print变成了函数~2.自行输入的语法,在2.x中是raw_input() 3.x 中泽使用input()。3.在for语句中学习range()用法, 在2.x中 直接是全部列表出来,在3.x中显示了区间,官方原话翻译:可以看到上面这个很奇怪,在很多种情况下,range()函...

weixin_30369779的博客 531

python3笔记_python3.4学习笔记 3.x和2.x的区别,持续更新

展开全部python3.4学习笔记(四) 3.x和2.x的区别在2.x中:print html,3.x中必须改成:print(html)import urllib2ImportError: No module named 'urllib2'在python3.x里面,用62616964757a686964616fe59b9ee7ad9431333339663438urllib.request代替ur...

weixin_39772652的博客 106

python3.x学习笔记1

1.了解python2.x 和python3.x。 python2.x 和python3.x的具体区别:转载链接:点击打开链接 2.第一个程序:hello word print(“hello word!”)3.python是解释型语言 4.python的开头声明 #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器; #!/us

hsj_jingyu的博客 277

Python 3.x与2.x 差异笔记

1. print "str" 这种没有括号的语法,在3.x下不支持,3.x只支持print ("str")。另外,print希望不换行在最后加一个“,”,在3.x中不适用了,3.x中可以这样去除换行print("str",end='') 2. import urllib2发现有错  ImportError: No module named urllib2 官网:The urllib2 modu

那闯 5278

学python需要记笔记吗_自学python需要做什么笔记

python3.4学习笔记 3.x和2.x的区别,持续更新python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2 ImportError: No module named 'urllib2' 在python3.x里面,用urllib.request代替urllib2 import thread...

weixin_42138716的博客 421

Python学习笔记之——python2.x和python3.x的区别

Python 3.0的变化主要在以下几个方面: print 函数 print语句没有了,取而代之的是print()函数。Python2.6与Python2.7部分地支持这种形式的print语法。在Python 2.6与Python 2.7里面,以下三种形式是等价的: print "fi...

chouhebo7382的博客 205

简述python2 x与3 x的区别_python2.x与3.x的主要区别笔记

#coding:utf-8'''python3.x新的东西目录使用__future__模块print函数整数除法Unicodexrange触发异常处理异常next()函数和.next()方法For循环变量与全局命名空间泄漏比较无序类型使用input()解析输入内容1,__future__ 模块2,print函数python2.x:print "Hello World" #is acceptable...

weixin_39854730的博客 227

Python3.X之模块笔记

1、作用域 正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;类似xxx这样的变量是特殊变量,可以被直接引用,我们自己的变量一般不要用这种变量名;类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为P

Scnu_wang的博客 515

Python2笔记(十一)—— Python2.x与3.x版本区别

转载:【菜鸟教程】Python2.x与3.x版本区别 Python2.x与3.x版本区别 Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。 为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许

成长笔记 356
上一篇: 【Django】Python+Django 图文教程
下一篇: 【Flask】FlaskWeb开发上手点滴(01)-入门
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值