从0到1上手Python 3.11开启高效编程之旅_第1页
从0到1上手Python 3.11开启高效编程之旅_第2页
从0到1上手Python 3.11开启高效编程之旅_第3页
从0到1上手Python 3.11开启高效编程之旅_第4页
从0到1上手Python 3.11开启高效编程之旅_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

从0到1上手Python3.11一、Python3.11:发者的心头好。从数据科学到人工智能,从Web开发到自动化脚本,Python的身影无处不在。-TIOBEPython2025525.35%PythonWebPython3.11,细介绍在不同操作系统下安装Python3.11的方法。Windows系统安装步骤\h\h\h\h\h\h\h\h运行安装程序:下载完成后,双击下载的安装文件(python-3.11.x-amd64.exe)。在安装向AddPython3.11toPATH”PythonPython选择安装组件OptionalFeatures”pip(Python和装完整的Python开发环境。勾选完成后,点击“Next”。variables”Install”Python3.11。安装过程可能需要几分钟,具体时间取决于你的电脑性验证安装:安装完成后,打开命令提示符(可以通过在开始菜单中搜索“cmd”来找到它),输入就说明Python3.11已经成功安装到你的电脑上了。macOS\h\h\h\h\h\h\h运行安装程序:下载完成后,双击下载的.pkg验证安装(版本信息输出,表明Python3.11已经成功安装在你的macOS系统上。Linux(CentOSsudosudoyum-yinstallgcczlibzlib-devellibffilibffi-develreadline-developenssl-developenssl11openssl11-develwgethttps:wgethttps:\h///ftp/python/3.11.0/Python-解压源码包tar-xzfPython-tar-xzfPython-usr/python,并启用ssl模块:cdPython-cdPython-./configure--prefix=/usr/python--with-编译和安装sudomake创建软链接:安装完成后,为了方便在系统的任何地方都能直接使用python3pip3sudosudoln-s/usr/python/bin/python3/usr/bin/python3sudoln-s/usr/python/bin/pip3/usr/bin/pip3AnacondaPythoncondaAnacondaPython3.11种Python库,并且能够自动解决库之间的依赖关系,避免了因依赖冲突而导致的安装失败问题。环境隔离:我们可以使用condaPythonPython,这样就可以避免不同项目之间的库版本冲突。例如,项目APython3.10BPython3.11Anaconda适合数据科学和机器学习:Anaconda内置了许多常用的数据科学和机器学习库,如NumPy、\h\h\h\h\h\h\htion),根据你的操作系统选择对应的安装包进行下载。安装Anaconda:下载完成后,双击安装包,按照安装向导的提示完成安装。在安装过程中,可以选到),myenv(可以根据自己的喜好修改环境名称)Python3.11condacreate-nmyenvcondacreate-nmyenv激活环境condaactivatecondaactivate三、基础语法:Python3.11(一)age=25height1.75name=fruits=["apple","banana","cherry"]这里的age是整数类型,height是浮点数类型,name是字符串类型,fruits过type()函数来查看变量的数据类型,例如type(age)会返回<class'int'>,表示age(二))、幂运算(**)aa=b=print(ab)#输出7print(a*b)30print(a%b)#输出1print(a//b)#输出3或xx=5y=print(xy)#输出Trueprint(xy)#输出Falseprint(xy)#输出Truepp=q=print(notp)#输出False,对p取反(三)ageage=ifage>=scorescore=ifscore90:elifscore70:(四)中有for:通常用于遍历可迭代对象(如列表、字符串、元组等)fruitsfruits=["apple","banana","cherry"]forfruitinfruits:while循环sum_num=sum_num=i=whilei<=100:sum_num+=ii+=i+=ifi==ifi==printPython3.11:(一)returnmessage返回。调用greet("Alice")时,函数会返回"Hello,Alice!",并将其赋值给greeting变量,最后位置参数defdefadd_numbers(a,b):returna+bresult=add_numbers(3,5)这里3对应a,5对应b关键字参数defdescribe_person(name,defdescribe_person(name,returnf"{name}is{age}yearsdescription=describe_person(age=25,name="Bob")在这个例子中,使用了关键字参数age和name默认参数defdefgreet_person(name,greeting="Hello"):returnf"{greeting},{name}!"message1=greet_person("Charlie")message2=greet_person("David","Hi")默认问候语;而调用greet_person("David","Hi")时,传递了新的问候语"Hi",则使用新的值。defdefprint_args(*args):forarginargs:print_args(1,2,3,defforkey,valueinkwargs.items():print(f"{key}:{value}")print_kwargs(name="Eve",age=30,city="New在print_args函数中,*args接收了多个位置参数,并通过循环打印出来;在print_kwargs,**kwargs(二)装饰器是Python中一个强大而优雅的特性,它可以在不修改原有函数代码的情况下,为函数添加额通常会调用原始函数,并在调用前后添加额外的功能。使用@defdefdefwrapper(*args,print(f"Callingfunction }withargs:{args},kwargs:result=func(*args,print(f"Function{func. }returned:{result}")returnresultreturnwrapperdefadd(a,b):returna+bsum_result=add(4,用add(4,6)时,就会自动执行装饰器中的逻辑,输出日志信息。start_time=time.time()end_time=time.time()print(f"Function{func. returnresultreturnwrappersum_num=0sum_num+=i(三)是nh-的对象必须是上下文管理器,上下文管理器是同时包含 enter ()和 exit ()方法的对象。当使用with语句时,Python会调用 enter ()方法进入上下文,在代码块执行完毕后,无论是否发生异常,都会调用 exit ()方法退出上下文,释放资源。filefile=open("example.txt","w")file.write("Thisisa法正确关闭,造成资源泄露。而使用with-as语句可以更安全、简洁地处理文件操作:withwithopen("example.txt","w")asfile:file.write("Thisisatest.")在这个例子中,open("example.txt","w")返回的文件对象就是一个上下文管理器。当进入with语 当with语句块执行完毕后,无论是否发生异常,都会自动调用文件对象 ()方法关闭文importimportdefwithsqlite3.connect("test.db")ascursor=cursor.execute('CREATETABLEIFNOTEXISTSusers(idINTEGERKEY,name(四)迭代器和生成器是迭代器:迭代器是一个可以记住遍历位置的对象,它实现了iter()和next()方法。任何实现了这两个方法的对象都可以称为迭代器。iter()方法返回迭代器对象本身,next()方法返回下一个元素,如果没有更多元素,则抛出StopIterationmy_list=[1,2,3,4,5]my_list=[1,2,3,4,5]用中,更多使用for循环来遍历迭代器,for循环会自动处理StopIterationmy_list=[1,2,3,4,5]formy_list=[1,2,3,4,5]foriteminiter(my_list):生成器Pythonyield为生成器(eneor)。生成器函数与普通函数的区别在于,普通函数使用return语句返回一个值后就结束了,而生成器函数使用yield语句返回一个值后,会暂停函数的执行,保存当前的状态,下次调用时从暂停的地方继续执行。例如,定义一个简单的生成器函数:defdefnumber_generator():num=1whileyieldnumnum+=1gen=number_generator()square_generatorsquare_generator=(i**2foriinrange(1,6))forsquareinsquare_generator:五、Python3.11性进一步提升了Python的性能和开发体验,使Python在编程领域更具竞争力。(一)25%。这一性能飞跃得益于多个方面的优化。在二元运算、下标操作、函数调用等基础操作在函数调用方面,Python3.11PythonCPythonCPython3.11路径。对于那些频繁被调用且输入类型相对固定的操作,Python3.11执行效率。例如,在执行加法操作时,如果某处加法运算通常都是数值类型参与,那么解释器就可以直接使用数值加法逻辑进行处理。这项特化能力的实现方式是在字节码层加入了内联缓存机制,记录某个操作所遇到的类型信息,并为这些类型生成对应的快速处理路径。当下次再次遇到相同类型的输(二)在开发过程中,快速定位和解决错误是提高开发效率的关键。Python3.11改进,当复杂代码出错时,它能给出更详细的错误位置信息,帮助开发者迅速找到问题所在。例如,在之前的版本中,如果代码中存在语法错误或者运行时错误,错误提示可能只给出大概的错误类型和出错的文件名,但具体的错误位置和上下文信息不够详细,开发者需要花费较多的时间去排查错误。Python3.11defdefcalculate_area(radius):ifradius<0:raiseraiseValueError("Radiuscannotbenegative")return3.14*radius**2area=calculate_area(-5)exceptValueErrorase:print(f"Error:{e}")calculate_area函数的第3行,并且会给出radius的值为-5,这样开发者就能快速定位到问题是由(三)exceptexcept*为处理这种情况提供了更强大的支持。异常组是一种可以包含多个异常的容器,它允许在一个try块中捕获多个不同类型的异常,并将它们作为一个组进行处理。except*则用于捕获异常组中用异常组和except*可以这样处理:data=file.read()result=10/forsub_excingroup.exceptions:print(fsub_exc}")print(fsub_exc}")误)。使用except(FileNotFoundError,ValueError)asgroup捕获异常组,然后通过遍历group.exceptions(四)case语句,但功能更加强大。结构化模式匹配允许开发者根据数据的结构来进行匹配,而不仅仅是classradius:floatwidth:floatmatchshape:returnwidth*heightcasecircle=Circle(5)rectangle=Rectangle(4,6)的shape是Circle类型时,会匹配到caseCircle(radius)得代码逻辑更加清晰,避免了大量的if-else嵌套,提高了代码的可读性和可维护性。Python3.11还是代码逻辑简化方面,都有着显著的提升。在实际项目开发中,充分利用这些新特性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论