优雅你的python代码

时间:2022-12-18 11:20:38

一、优雅你的代码

1、为多个变量赋值

普通方法:

a = 1
b = 2
c = 3

优雅方法:

a,b,c = 1,2,3

2、序列解包

普通方法:

ls = ['小温', 18, 'male','貌美如花']
name = ls[0]
age = ls[1]
gender = ls[2]
mark = ls[3]

优雅方法:

ls = ['小温', 18, 'male','貌美如花']
name, age, gender,mark= ls

3、判断语句

 普通方法:

x = -1
if x >=0:
    y = x
else:
    y = -x
print(y)

 

优雅方法:

x = -1
y = x if x>=0 else -x

print(y)

 

 4、判断是否为多个取值之一

普通方法:

usr_inp = input(">>>:")
if usr_inp=='a' or usr_inp=='b' or usr_inp=='c':
    print(True)
else:
    print(False)

 

 优雅方法:

usr_inp = input(">>>:")
if usr_inp in ('a','b','c'):
    print(True)
else:
    print(False)

 

优雅方法进阶版:

usr_inp = input(">>>:")
print(True if usr_inp in ('a','b','c') else False)

 

终极版:

print(True if input(">>>:") in ('a','b','c') else False)

 

5、判断是否为非空

普通方法:

l=[[1,2,3],{},'']
for i in l:
    print(True if len(i)>0 else False)

 

优雅方法:

l=[[1,2,3],{},'']
for i in l:
    print(True if i else False)

 

 6、判断诸多条件是否有一个成立

普通方法:

math,english,yw = 70,22,80
if math<60 or english<60 or yw <60:
    print("挂科")

 

优雅方法:

math,english,yw = 70,22,80
if any([math<60,english<60 ,yw <60]):
    print("挂科")

 

7、判断诸多条件是否都成立

普通方法:

math,english,yw = 70,60,80
if math>=60 and english>=60 and yw>=80:
    print("pass")

 

优雅方法:

math,english,yw = 70,60,80
if all((math>=60,english>=60,yw>=80)):
    print("pass")

 

8、优雅你的循环

import time
for i in range(10):
    time.sleep(0.5)
    pass
    print('\r进度:%s'%((i+1)*10),end='')

 

二、爱心树代码

 

优雅你的python代码优雅你的python代码
#-*-encoding=utf-8-*-
import turtle,random,os
def love(x, y):  # 在(x,y)处画爱心lalala
    lv = turtle.Turtle()
    lv.hideturtle()
    lv.up()
    lv.goto(x, y)  # 定位到(x,y)

    def curvemove():  # 画圆弧
        for i in range(20):
            lv.right(10)
            lv.forward(2)

    lv.color('red', 'pink')
    lv.speed(10000000)
    lv.pensize(1)
    # 开始画爱心lalala
    lv.down()
    lv.begin_fill()
    lv.left(140)
    lv.forward(22)
    curvemove()
    lv.left(120)
    curvemove()
    lv.forward(22)
    lv.write("阿花", font=("Arial", 12, "normal"), align="center")  # 写上表白的人的名字
    lv.left(140)  # 画完复位
    lv.end_fill()


def tree(branchLen, t):
    if branchLen > 5:  # 剩余树枝太少要结束递归
        if branchLen < 20:  # 如果树枝剩余长度较短则变绿
            t.color("green")
            t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
            t.down()
            t.forward(branchLen)
            love(t.xcor(), t.ycor())  # 传输现在turtle的坐标
            t.up()
            t.backward(branchLen)
            t.color("brown")
            return
        t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
        t.down()
        t.forward(branchLen)
        # 以下递归
        ang = random.uniform(15, 45)
        t.right(ang)
        tree(branchLen - random.uniform(12, 16), t)  # 随机决定减小长度
        t.left(2 * ang)
        tree(branchLen - random.uniform(12, 16), t)  # 随机决定减小长度
        t.right(ang)
        t.up()
        t.backward(branchLen)


myWin = turtle.Screen()
myWin.title('阿花我爱你')
t = turtle.Turtle()
winsound.PlaySound(__music,winsound.SND_ASYNC)
t.hideturtle()
t.speed(1000)
t.left(90)
t.up()
t.backward(200)
t.down()
t.color("brown")
t.pensize(32)
t.forward(60)
tree(100, t)
myWin.exitonclick()
View Code