当前位置: 首页 > news >正文

RemakePython


2小时Python基础语法回忆,参考以下文章:

Python3 教程 | 菜鸟教程​

# is 代表引用相同
# = 值相同
# python语法糖 a,b=b,a+b
# 元组初始化只有一个元素 a=(1,)
# 交互模式中 最后被输出的表达式结果被赋值给变量 _,且被当做只读变量
# python中格式化字符串 print("我叫{},今年{}岁".format("小蜜",18))
# list的remove和pop区别
# tuple不允许删除,且元组指向的内存中的内容不可以改变
# id查看内存地址
# python中list即vector dict即hashMap tuple即不可变list set即hashset
# python中set的删除s.pop()为随机删除一个元素
# 元组推导式 a = (x for x in range(1,10))的a返回的是一个生成器,使用 tuple(a)才能将生成器对象转成元组"""
生成器例子
"""def countdown(n):while n > 0:yield nn -= 1# 创建生成器对象
generator = countdown(5)# 通过迭代生成器获取值
print(next(generator))  # 输出: 5
print(next(generator))  # 输出: 4
print(next(generator))  # 输出: 3# 使用 for 循环迭代生成器
for value in generator:print(value)  # 输出: 2 1"""
迭代器例子 list=[1,2,3,4] it=iter(list) next(it)
"""class A:def __iter__(self):self.a = 1return selfdef __next__(self):if self.a<=20:x = self.aself.a += 1return xelse:raise StopIteration
myclass=A()
myiter=iter(myclass)
print(next(myiter))
for x in iter(myclass):print(x,end=" ")# python函数中的参数传递方式类似于java? 不可变类型先拷贝一个,可变类型直接传引用地址,对于变量声明同理
# python中传递不定长参数时使用加*的形参,会被收集到一个元组,**的形参,会被收集到一个字典"""
不定长参数一个*作为tuple 两个**作为dict
"""
def printinfo(arg1, *tuple,**dict):"打印任何传入的参数"print("输出: ")for var in tuple:print(var,end=" ")print()for key in dict:print("{}:{}".format(key,dict[key]),end=" ")returnprintinfo(70, 60, 50,name="小明",age=18)"""
python装饰器 可以传参也可以不传参,传参深度再加一层,即再多一层闭包
"""
import time
def timer(x):def decorator(func):def wrapper(*args, **kwargs):start_time = time.time()  # 记录函数开始时间time.sleep(x)      #睡x秒result = func(*args, **kwargs)  # 执行函数并获取返回值end_time = time.time()  # 记录函数结束时间print('函数 {} 的执行时间为:{:.4f} 秒'.format(func.__name__, end_time - start_time))return resultreturn wrapperreturn decorator
@timer(3)
def sum(arg1,arg2):print("加法:",arg1+arg2)
sum(1,2)"""
python数据结构:stack:list模拟
queue:list模拟
HashSet:set
HashMap:map"""# zip()组合序列 reversed()反转序列 sorted()排序序列 ,需要再转化为对应集合类型"""
删除指定路径下的所有文件
"""
import osdef remove_files(path):for file_name in os.listdir(path):file_path = os.path.join(path, file_name)if os.path.isfile(file_path):os.remove(file_path)print("已删除文件 ", file_path)elif os.path.isdir(file_path):remove_files(file_path)  # 递归删除子文件夹中的文件
remove_files("C:/example_folder") # 要删除文件的路径"""
exception处理
"""
try:print("123")
except AssertionError as error:print(error)
except IOError:raise Exception("IOException")
else:try:with open('file.log') as file:read_data = file.read()except FileNotFoundError as fnf_error:print(fnf_error)
finally:print('这句话,无论异常是否发生都会执行。')"""
自定义异常
"""
class MyError(Exception):def __init__(self, value):self.value = valuedef __str__(self):return repr(self.value)"""
Python中的类,有私有属性和私有方法,外面无法访问,且类支持多继承
"""class people:# 定义基本属性name = ''age = 0# 定义私有属性,私有属性在类外部无法直接进行访问__weight = 0# 定义构造方法def __init__(self, n, a, w):self.name = nself.age = aself.__weight = wdef speak(self):print("%s 说: 我 %d 岁。" % (self.name, self.age))# 单继承示例
class student(people):grade = ''def __init__(self, n, a, w, g):# 调用父类的构函people.__init__(self, n, a, w)self.grade = g# 覆写父类的方法def speak(self):print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade))def study(self):print("%s 正在学习" % (self.name))# 另一个类,多继承之前的准备
class speaker():topic = ''name = ''def __init__(self, n, t):self.name = nself.topic = tdef speak(self):print("我叫 %s,我是一个演说家,我演讲的主题是 %s" % (self.name, self.topic))# 多继承
class sample(speaker, student):a = ''def __init__(self, n, a, w, g, t):student.__init__(self, n, a, w, g)speaker.__init__(self, n, t)test = sample("Tim", 25, 80, 4, "Python")
test.speak()  # 方法名同,默认调用的是在括号中参数位置排前父类的方法
test.study()"""
Python运算符重载
"""
class Vector:def __init__(self,a,b):self.a=aself.b=bdef __str__(self):return f"Vector{self.a},{self.b}"def __add__(self,other):return Vector(self.a+other.a,self.b+other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)"""
Python中内部作用域想要修改外部作用域的不可变变量(tuple,string,int等) 时需要使用global关键字
也许你会想为什么int也是不可变变量呢?a=1之后再a=2不是可行吗,这是因为a=2实际上是让a重新指向一个新地址,并没有修改1的值
"""
num = 1
def fun1():global num  # 需要使用 global 关键字声明num = 123print(num)
fun1()
print(num)python的map函数 function->iterable
numbers = [1, 3, 6]
newNumbers = tuple(map(lambda x: x , numbers))
newNumbers==(1,3,6)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 24年第三届钉钉杯大学生大数据挑战赛
  • PySide(PyQt)使用QPropertyAnimation制作动态界面
  • html实现酷炫美观的可视化大屏(十种风格示例,附源码)
  • 【JS】前端文件读取FileReader操作总结
  • 写代码对人的影响
  • Linux(虚拟机)的介绍
  • vue2 vue3 props 的处理机制
  • 如何利用AI工具获取所有Excel公式?
  • 视频隐写术
  • docker -v 到底和那个一样?type=volume还是type=bind的解释
  • Java环境变量配置详解:从安装到调试
  • 【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)
  • C语言经典习题24
  • Linux进程信号详解【下】
  • springSecurity学习之springSecurity过滤器
  • CentOS6 编译安装 redis-3.2.3
  • exif信息对照
  • isset在php5.6-和php7.0+的一些差异
  • Linux各目录及每个目录的详细介绍
  • mysql中InnoDB引擎中页的概念
  • redis学习笔记(三):列表、集合、有序集合
  • Sublime text 3 3103 注册码
  • XForms - 更强大的Form
  • 番外篇1:在Windows环境下安装JDK
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 全栈开发——Linux
  • 突破自己的技术思维
  • 我有几个粽子,和一个故事
  • 物联网链路协议
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 自制字幕遮挡器
  • 【云吞铺子】性能抖动剖析(二)
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​虚拟化系列介绍(十)
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #WEB前端(HTML属性)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (20050108)又读《平凡的世界》
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .Net语言中的StringBuilder:入门到精通
  • .net中的Queue和Stack
  • .vimrc 配置项
  • @Controller和@RestController的区别?
  • @font-face 用字体画图标
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [20170713] 无法访问SQL Server
  • [autojs]autojs开关按钮的简单使用
  • [BJDCTF2020]EzPHP1