@SuHongjun
2020-04-16T11:32:35.000000Z
字数 2328
阅读 370
Python 2020春季学期
if x > y:a = xelse:a = y
上述语句可以简化为:
a = x if x>y else y
Python还支持从列表中挑选对象,其基本格式如下:
a = [x,y][f] #f为假时将x赋值给a,否则将y赋值给ac = [b,a][a>b] #c获得 a,b中较大值
例7.1
import turtle, datetimedef 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.pyimport turtle, datetimedef 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()