1. 首页
  2. Python

「优雅」的python写法,让你的代码明确又简单

“u003Cdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fdfic-imagehandleru002F4477c8a7-4163-4fc9-8b62-f855f94d1e35″ img_width=”1200″ img_height=”800″ alt=”「优雅」的python写法,让你的代码明确又简单” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-justify”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E我们都知道,Python 的设计哲学是「优雅」、「明确」、「简单」。这也许很多人选择 Python 的原因。但是我收到有些伙伴反馈,他写的 Python 并不优雅,甚至很臃肿,那可能是你的姿势不对哦!今天就给大家带来 Python 语句的十大优雅之法。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E为多个变量赋值u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E有时,有多个变量需要赋值,这时你会怎么赋值呢?u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E常规方法是给变量逐个赋值。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Ea = 0u003Cbru003Eb = 1u003Cbru003Ec = 2u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E直接按顺序对应一一赋值。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Ea, b, c = 0, 1, 2u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E序列解包u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E需要取出列表中的元素。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E一般我们知道可以通过下标获取具体元素。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Einfo = [‘brucepk’, ‘man’, ‘python’]u003Cbru003Ename = info[0]u003Cbru003Esex = info[1]u003Cbru003Etech = info[2]u003Cbru003Eprint(name,sex,tech)u003Cbru003E# 结果u003Cbru003Ebrucepk man pythonu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E给出对应变量接收所有元素。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Einfo = [‘brucepk’, ‘man’, ‘python’]u003Cbru003Ename,sex,tech = infou003Cbru003Eprint(name,sex,tech)u003Cbru003E# 结果u003Cbru003Ebrucepk man pythonu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅你的判断语句u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E我们用判断语句来定义一个绝对值函数。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Ex = -6u003Cbru003Eif x < 0:u003Cbru003E y = -xu003Cbru003Eelse:u003Cbru003E y = xu003Cbru003Eprint(y)u003Cbru003E# 结果u003Cbru003E6u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Ex = -6u003Cbru003Ey = -x if x<0 else xu003Cbru003Eprint(y)u003Cbru003E# 结果u003Cbru003E6u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E区间判断u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 and 连续两次判断的语句,条件都符合时才执行语句。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Escore = 82u003Cbru003Eif score >=80 and score < 90:u003Cbru003E level = ‘B’u003Cbru003Eprint(level)u003Cbru003E# 结果u003Cbru003EBu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用链式判断。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Escore = 82u003Cbru003Eif 80 <= score < 90:u003Cbru003E level = ‘B’u003Cbru003Eprint(level)u003Cbru003E# 结果u003Cbru003EBu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E多个值符合条件判断u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E多个值任意一个值符合条件即为 True 的情况。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Enum = 1u003Cbru003Eif num == 1 or num == 3 or num == 5:u003Cbru003E type = ‘奇数’u003Cbru003Eprint(type)u003Cbru003E# 结果u003Cbru003E奇数u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用关键字 in,让你的语句更优雅。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Enum = 1u003Cbru003Eif num in(1,3,5):u003Cbru003E type = ‘奇数’u003Cbru003Eprint(type)u003Cbru003E# 结果u003Cbru003E奇数u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E判断是否为空u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E判断元素是空还是非空。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E一般我们想到的是 len() 方法来判断元素长度,大于 0 则为非空。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003EA,B,C =[1,3,5],{},”u003Cbru003Eif len(A) > 0:u003Cbru003E print(‘A 为非空’)u003Cbru003Eif len(B) > 0:u003Cbru003E print(‘B 为非空’)u003Cbru003Eif len(C) > 0:u003Cbru003E print(‘C 为非空’)u003Cbru003E# 结果u003Cbru003EA 为非空u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E在之前的文章 零基础学 python 之 if 语句 中讲过,if 后面的执行条件是可以简写的,只要条件 是非零数值、非空字符串、非空 list 等,就判断为 True,否则为 False。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003EA,B,C =[1,3,5],{},”u003Cbru003Eif A:u003Cbru003E print(‘A 为非空’)u003Cbru003Eif B:u003Cbru003E print(‘B 为非空’)u003Cbru003Eif C:u003Cbru003E print(‘C 为非空’)u003Cbru003E# 结果u003Cbru003EA 为非空u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E多条件内容判断至少一个成立u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E用 or 连接多个条件。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Emath,English,computer =90,80,88u003Cbru003Eif math<60 or English<60 or computer<60:u003Cbru003E print(‘not pass’)u003Cbru003E# 结果u003Cbru003Enot passu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 any 语句。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Emath,English,computer =90,59,88u003Cbru003Eif any([math<60,English<60,computer<60]):u003Cbru003E print(‘not pass’)u003Cbru003E# 结果u003Cbru003Enot passu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E多条件内容判断全部成立u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 and 连接条件做判断。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Emath,English,computer =90,80,88u003Cbru003Eif math>60 and English>60 and computer>60:u003Cbru003E print(‘pass’)u003Cbru003E# 结果u003Cbru003Epassu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 all 方法。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Emath,English,computer =90,80,88u003Cbru003Eif all([math>60,English>60,computer>60]):u003Cbru003E print(‘pass’)u003Cbru003E# 结果u003Cbru003Epassu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E遍历序列的元素和元素下标u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 for 循环进行遍历元素和下标。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003EL =[‘math’, ‘English’, ‘computer’, ‘Physics’]u003Cbru003Efor i in range(len(L)):u003Cbru003E print(i, ‘:’, L[i])u003Cbru003E# 结果u003Cbru003E0 : mathu003Cbru003E1 : Englishu003Cbru003E2 : computeru003Cbru003E3 : Physicsu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用 enumerate 函数。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003EL =[‘math’, ‘English’, ‘computer’, ‘Physics’]u003Cbru003Efor k,v in enumerate(L):u003Cbru003E print(k, ‘:’, v)u003Cbru003E# 结果u003Cbru003E0 : mathu003Cbru003E1 : Englishu003Cbru003E2 : computeru003Cbru003E3 : Physicsu003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E循环语句优化u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E之前的文章 零基础学 Python 之列表生成式 中讲过列表生成时的用法,举例:生成 [1×1,2×2,3×3,4×4,5×5]。u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E常规方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用简单的 for 循环可以达到目的。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003EL = []u003Cbru003Efor i in range(1, 6):u003Cbru003E L.append(i*i)u003Cbru003Eprint(L) u003Cbru003E#结果:u003Cbru003E[1, 4, 9, 16, 25]u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E优雅方法:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用列表生成式,一行代码搞定。u003Cu002Fpu003Eu003Cpre class=”ql-align-justify”u003Eprint([x*x for x in range(1, 6)]) u003Cbru003E#结果:u003Cbru003E[1, 4, 9, 16, 25]u003Cbru003Eu003Cu002Fpreu003Eu003Cp class=”ql-align-justify”u003EPython 这些优雅的写法学会了吗?自己赶紧动手试试吧。u003Cu002Fpu003Eu003Cblockquoteu003Eu003Cpu003E如果你对Python编程感兴趣,那么记得私信小编“007”领取全套Python资料哦。u003Cu002Fpu003Eu003Cu002Fblockquoteu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F3e8551dac852430ba5138231fb106396″ img_width=”561″ img_height=”485″ alt=”「优雅」的python写法,让你的代码明确又简单” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003E”

原文始发于:「优雅」的python写法,让你的代码明确又简单

主题测试文章,只做测试使用。发布者:醒百年,转转请注明出处:http://www.cxybcw.com/13650.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code