条件、循环、函数定义、字符串操作练习

 

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)

 

posted @ 2017-09-14 17:33  14郭子维  阅读(158)  评论(0编辑  收藏  举报