python基础
2022/4/21 11:12:35
本文主要是介绍python基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import os # 打开画图工具 os.system("C:\Windows\system32\mspaint.exe") # 修改文件名 os.rename(r"E:\Code\a.txt",r"E:\Code\b.txt") # 读取文件 file=open(r"E:\Code\test.txt") print(file.read()) file.close() # 文件操作完毕后,一定要关闭文件IO资源
类和继承
class Animal(object): def __init__(self, color): self.color = color def eat(self): print("动物在吃!") def run(self): print("动物在跑") class Cat(Animal):# Cat类继承Animal类 pass cat = Cat("黄色") print(cat.color) print(cat.eat) class Dog(Animal): def __init__(self, name, age): self.name = name self.age = age def eat(self): print("狗在啃骨头!") dog = Dog("小黑", 10) print(dog.eat()) # 有子类,输出子类的值 print(dog.run()) # 没有子类,输出父类的值
8-1异常
- 我们都知道分母不能为0,所以
3/a[2]=a/0
就会出现错误。当没有try时,代码就会停止运行。而try except表示有错误时还是会继续执行,e表示错误语法。
a = [12, 43, 0, 46, "a", 76] for i in a: try: #写可能会报错或出现异常的代码 print(3/i) except Exception as e: #捕获try语句的异常e,except无论语法是否错误都会执行 print("出现错误,错误是:",e) #出现异常时执行的语句 else: print("正常") #没有异常时执行的语句 finally: print("结束") #无论是否有异常,都会执行的语句(每次都会执行)
8-2常见错误和异常
- NameError:这是比较常见的一个错误,就是没有定义变量就把它拿来用。
- SyntaxError:这是语法错误,少了个冒号,没有空格等,都会出现这个错误。
- I0 Error:在做文件操作的时候常遇到的错误,例如文件操作的时候文件不存在。
- qZeroDivisionError:在做数据处理和计算的时候会遇到这种错误就是除数是0。
- IndentationError:这是新手常遇到的一种错误,就是缩进问题啦。
8-3抛出自定义异常
- pwd不符合if条件,所以会输出异常的行数
pwd = "123456" if len(pwd) < 8: ex = Exception("密码不能低于8位数!") raise ex #抛出异常 else: print("密码错误")
11-1进程
- 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是在处理机上的一次执行过程,它是一个动态的概念。这个不难理解,其实进程是包含程序的,进程的执行离不开程序,进程中的文本区域就是代码区,也就是程序。
- 进程就是一段程序的执行过程。 它是一个具有-定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
- 简单的来讲进程的概念主要有两点:第一,进程是一个实体。 每一个进程都有它自己的地址空间,一般情况下,包括文本区域(textt2region)、数据区域(data region) 和.堆栈(stack region) 。文本区域存储处理器执行的代码:数据区域存储变量和进程执行期间使用的动态分配的内存,堆栈区域存储着活动过程调用的指令和本地变量。第二二 ,进程是一个“执行中的程序”。程序是-个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
- 进程有三个状态,就绪、运行和阻塞。
- 就绪态:其实就是获取了除gpu外的所有资源,只要处理器分配资源就可以马上执行。
- 运行态:获得了处理器分配的资源,程序开始执行。
- 阻塞态:当程序条件不够时候,需要等待条件满足时候才能执行,如等待i/o操作时候,此刻的状态就叫阻塞态。
- 进程与线程的区别
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
1)简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
2)线程的划分尺度小于进程,使得多线程程序的并发性高。
3)另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
4)线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
5)从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区
11-3多线程
- Python的标准 库提供了两个模块:_thread和 threading,_thread是低级模块,threading是高级模块,对thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。
- 启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行。最后执行的时候大约为5秒。
import imp import threading import time def run(name): print(name,"线程执行了") time.sleep(5) #创建线程 t1 = threading.Thread(target=run, args=("001",)) t2 = threading.Thread(target=run, args=("002",)) #启动线程 t1.start() t2.start()
11-8实例-景区卖票
import threading lock = threading.Lock() num = 100 # 卖票 def sale(name): lock.acquire() #线程锁 global num if num > 0: num = num - 1 print("卖出一张票,还剩",num,"张!") lock.release() #释放锁 # 售票窗口(2个线程表示) while 1==1: if num > 0: ta = threading.Thread(target=sale,args=("A窗口",)) #线程a tb = threading.Thread(target=sale,args=("B窗口",)) #线程b ta.start() #启动线程a tb.start() else: break print("票已经卖完!")
13-1日期和时间类型
- 获取当前的日期:
datetime.datetime.now()
,得到的日期2022-03-31 10:33:37.952499 - 获取当前的年、月、日、时、分、秒
- 年:
year = datetime.datetime.now().year
- 月:
month = datetime.datetime.now().month
- 日:
day = datetime.datetime.now().day
- 时:
our = datetime.datetime.now().hour
- 分:
minute = datetime.datetime.now().minute
- 秒:
second = datetime.datetime.now().second
- 年:
- 获取一个指定日期:
datetime.datetime(年, 月, 日, 小时, 分钟, 秒)
- 日期转字符串:
datetime.datetime.now()
,获取现在的时间。注意%Y-%m-%d %H:%M:%S
区分大小写 - 字符串转日期:
datetime.datetime.strptime(字符, 日期格式)
,%Y-%m-%d %H:%M:%S
和上面s的字符对应,%Y
读取年份...
import datetime # 获取当前的日期 now = datetime.datetime.now() print("now:",now) # 获取当前的年、月、日、时、分、秒 year = datetime.datetime.now().year month = datetime.datetime.now().month day = datetime.datetime.now().day hour = datetime.datetime.now().hour minute = datetime.datetime.now().minute second = datetime.datetime.now().second print("year:",year,"\tmonth:",month,"\tday:",day) print("hour:",hour,"\minute:",minute,"\tsecond:",second) # 获取一个指定日期 d = datetime.datetime(2022, 3, 31, 8, 30) print("d:",d) # 日期转字符串 now = datetime.datetime.now() #获取现在的时间 d = now.strftime("%Y-%m-%d %H:%M:%S") print("now:",now,"\td:",d) # 字符串转日期 s = "2022-3-31 10:31:00" d = datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S") print("d:",d,"\t类型:",type(d))
13-2json
# json # {key:value, key:value} import json # json转字典 j = '{"city":"北京", "name":"熊猫"}' print("type:",type(j),"\tj:",j) p = json.loads(j) print("type:",type(p),"\tp:",p) # 字典转json dict = {"city":"北京", "name":"熊猫"} s = json.dumps(dict, ensure_ascii=False) print("type:",type(s),"\ts:",s)
13-3编码和解码
- py3中字符串的两种类型,bytes,str。str存储unicode类型,bytes存储byte类型。
# 编码 a = "我爱中国" # 默认是unicode类型 byte = a.encode("utf-8") #字符串转byte称为编码 print(byte) # 解码:byte转字符串(unicode) str = byte.decode("utf-8") #注意编码方式和解码方式要一致 print(str)
这篇关于python基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践