条件、循环、函数定义、字符串操作练习
1、对前面的代码进行优化,用for,while,if,def实现:
a.用循环画五角星:
import turtle for i in range(5): turtle.forward(100) turtle.left(144)
b.用循环画同心圆:
from turtle import* for i in range(5): penup() goto(0,-50*(i+1)) pendown() circle(50*(i+1))
c.用while循环画太阳花:
import turtle turtle.color('red','yellow') turtle.speed('fastest') turtle.begin_fill() while True: turtle.forward(250) turtle.left(170) if abs(turtle.pos())<1: break turtle.end_fill() turtle.done()
d.用函数定义画五个五角星:
from turtle import* setup(600,400,0,0) color('#32CD32') bgcolor('#191970') fillcolor('#FFD700') def my_goto(x,y): penup() goto(x,y) down() def my_draw5(r): begin_fill() for i in range(5): forward(r) right(144) end_fill() my_goto(-250,75) my_draw5(100) my_goto(-100,150) my_draw5(50) my_goto(-20,90) my_draw5(50) my_goto(-20,10) my_draw5(50) my_goto(-100,-50) my_draw5(50)
e.用函数定义画钻石花瓣的太阳花
from turtle import* def draw_diamond(brad): brad.forward(100) brad.right(45) brad.forward(100) brad.right(135) def draw_art(): window=Screen() window.bgcolor('#AFEEEE') brad=Turtle() brad.shape("turtle") brad.color("orange") brad.speed("fastest") for i in range(1,37): draw_diamond(brad) draw_diamond(brad) brad.left(10) brad.right(90) brad.pensize(5) brad.color('#00FF00') brad.fd(300) window.exitonclick() draw_art()
2、字符串操作
a.输入学号,识别年级、专业、序号。
def decide(ID): if len(ID)<12: print("你输入的学号有误,请正确输入!") elif ID.isdigit() !=True: print("你输入的学号有误,请正确输入!") else: grade=ID[0:4] profession=ID[4:8] order=ID[10:12] print("{}级".format(grade),end="") if profession=='0611': print("网络工程",end="") print("{}号同学".format(order)) ID=input("请输入学号:") decide(ID)
b.输入1-7的数字,输出对应的“星期几”。
def weekday(week): week=int(week) if 0<week<8: i=week-1 str=['星期一','星期二','星期三','星期四','星期五','星期六','星期日'] print("数字{}是{}".format(week,str[i])) else: print("输入有误") week=input("输入1~7内的数字:") weekday(week)
c.识别身份证号中的省市区、年龄、性别
import time provinces = { 11:'北京市', 12:'天津市', 13:'河北省', 14:'山西省', 15:'内蒙古自治区', 21:'辽宁省', 22:'吉林省', 23:'黑龙江省', 31:'上海市', 32:'江苏省', 33:'浙江省', 34:'安徽省', 35:'福建省', 36:'江西省', 37:'山东省', 41:'河南省', 42:'湖北省', 43:'湖南省', 44:'广东省', 45:'广西壮族自治区', 46:'海南省', 50:'重庆市', 51:'四川省', 52:'贵州省', 53:'云南省', 54:'西藏自治区', 61:'陕西省', 62:'甘肃省', 63:'青海省', 64:'宁夏回族自治区', 65:'新疆维吾尔自治区', 71:'台湾省', 81:'香港特别行政区', 91:'澳门特别行政区' } def decide(cardID): if len(cardID)<18: print("你输入的身份证有误,请正确输入!") elif cardID.isdigit() !=True: print("你输入的身份证有误,请正确输入!") else: province=cardID[0:2] birthdayYear=cardID[6:10] localYear=time.strftime('%Y') age=int(localYear)-int(birthdayYear) sex=cardID[16:17] print("省份为:", provinces.get(int(province))) print("年龄为:{}".format(age)) if int(sex)%2==0: print("性别:女") else: print("性别,男") cardID=input("请输入身份证号:") decide(cardID)