@SuHongjun
2020-04-16T11:32:35.000000Z
字数 2328
阅读 341
Python
2020春季学期
if x > y:
a = x
else:
a = y
上述语句可以简化为:
a = x if x>y else y
Python还支持从列表中挑选对象,其基本格式如下:
a = [x,y][f] #f为假时将x赋值给a,否则将y赋值给a
c = [b,a][a>b] #c获得 a,b中较大值
例7.1
import turtle, datetime
def drawLine(draw): #绘制单段数码管
turtle.pendown() if draw else turtle.penup() #这是if...else三元表达式
turtle.fd(40)
turtle.right(90)
def drawDigit(digit): #根据数字绘制七段数码管
drawLine(True) if digit in ['-',2,3,4,5,6,8,9] else drawLine(False) #这是if...else三元表达式
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date): #获得要输出的数字
for i in date:
if i in "0123456789":
drawDigit(eval(i)) #注意: 通过eval()函数将数字变为整数 ,也可以用int()
else:
drawDigit(i)
def main():
turtle.setup(800, 350, 200, 200)
turtle.penup()
turtle.pencolor("red")
turtle.fd(-300)
turtle.pensize(9)
d = datetime.datetime.now().strftime('%Y-%m-%d')
drawDate( d ) #调用drawDate(), d为实参, 值传递
turtle.hideturtle()
main()
例子7.2: 另一种数码管风格的日期显示
#e7.2SevenSegDisplay.py
import turtle, datetime
def drawGap(): #绘制数码管间隔
turtle.penup()
turtle.fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(d): #根据数字绘制七段数码管
drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date):
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write('年',font=("Arial", 30, "normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write('月',font=("Arial", 30, "normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i == '+':
turtle.write('日',font=("Arial", 30, "normal"))
else:
drawDigit(eval(i))
def main():
turtle.setup(800, 350, 200, 200)
turtle.penup()
turtle.fd(-350)
turtle.pensize(9)
drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
turtle.hideturtle()
main()