python小练习--基本结构与函数控制语句

简介: python小练习--基本结构与函数控制语句

学习例子:


例子1:画奥运五环图形

import turtle
turtle.showturtle()
turtle.width(10)
turtle.penup()
turtle.goto(-70,0)
turtle.pendown()
turtle.color("blue")
turtle.circle(40)
turtle.penup()
turtle.goto(-10,0)
turtle.pendown()
turtle.color("black")
turtle.circle(40)
turtle.penup()
turtle.goto(50,0)
turtle.pendown()
turtle.color("red")
turtle.circle(40)
turtle.penup()
turtle.goto(-45,-60)
turtle.pendown()
turtle.color("yellow")
turtle.circle(40)
turtle.penup()
turtle.goto(20,-60)
turtle.pendown()
turtle.color("green")
turtle.circle(40)

image.png


例子2:定义多点坐标_绘出折线_并计算起始点和终点距离

import turtle
import math
x1,y1 = 0,73
x2,y2 = 40,-40
x3,y3 = 10,14
x4,y4 = -83,-34
x5,y5 = 0,0
turtle.width(5)
turtle.goto(x1,y1)
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
turtle.goto(x5,y5)
distance = math.sqrt((x2-x4)**2+(y2-y4)**2)
turtle.write(distance)

image.png


例子3:列表的控制

  1. 将”to be or not to be”字符串倒序输出
  2. 将”sxtsxtsxtsxtsxt”字符串中所有的 s 输出


image.png

例子4:控制语句的编写

print("请输入一个学生的成绩:")
score = int(input())
mark = ""
if score < 60:
    mark = "不及格"
elif score < 80:
    mark = "及格"
elif score < 90:
    mark = "良好"
else:
    mark = "优秀"
print("该学会的成绩是:",score,"评价为:",mark)
print("该学会的成绩是:{0},其评价为:{1}".format(score,mark))
print("该学会的成绩是:{grade},其评价为:{part}".format(grade = score,part = mark))

image.png


例子5:象限判断

print("请输入x的值:")
x = int(input())
print("请输入y的值:")
y = int(input())
point = ""
if x>0 and y>0:
    point = "第一象限"
elif x<0 and y>0:
    point = "第二象限"
elif x<0 and y<0:
    point = "第三象限"
else:
    point = "第四象限"
print("x = {0},y = {1},位于的象限是{2}".format(x,y,point))

image.png

改善:

score = int(input(" " 请输入一个在 0 0-100 之间的数字:" "))
degree = "ABCDE"
num = 0
f if score>100 r or score<0:
score = int(input(" " 输入错误!请重新输入一个在 0 0-100 之间的数字:" "))
else:
num = score//10
f if num<6:num=5
print(" " 分数是 {0}, 等级是 {1}".format(score,degree[9-num])


例子6:画同心圆

import turtle
color = ["blue","white","red","pink","green","purple","yellow","brown"]
i = turtle.Pen()
i.speed(15)
i.width(5)
for c in range(100):
    i.penup()
    i.goto(0,-10*c)
    i.pendown()
    i.color(color[c%len(color)])
    i.circle(0+10*c)
turtle.done()

image.png


例子7:画棋盘18*18

import turtle
pen = turtle.Pen()
pen.speed(10)
for row in range(18):
    pen.penup()
    pen.goto(0,170-row*10)
    pen.pendown()
    pen.goto(170,170-row*10)
for column in range(18):
    pen.penup()
    pen.goto(column*10,170)
    pen.pendown()
    pen.goto(column*10,0)
turtle.done()

image.png


例子8:局部变量和全局变量效率测试

import math
import time
def test01():
    start = time.time()
    for i in range(100000000):
        math.sqrt(30)
    end = time.time()
    print("耗时{0}".format(end-start))
def test02():
    b = math.sqrt
    start = time.time()
    for i in range(100000000):
        b(30)
    end = time.time()
    print("耗时{0}".format(end-start))
test01()
test02()

image.png


例子9:浅拷贝与深拷贝

#测试浅拷贝和深拷贝
t import copy
f def testCopy():
'''测试浅拷贝'''
a = [10, 20, [5, 6]]
b = copy.copy(a)
print( "a", a)
print( "b", b)
b.append(30)
b[2].append(7)
print(" " 浅拷贝 ......")
print( "a", a)
print( "b", b)
f def testDeepCopy():
'''测试深拷贝'''
a = [10, 20, [5, 6]]
b = copy.deepcopy(a)
print( "a", a)
print( "b", b)
b.append(30)
b[2].append(7)
print(" " 深拷贝 ......")
print( "a", a)
print( "b", b)
testCopy()
print( "*************")
testDeepCopy()


结果:

运行结果:
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
浅拷贝......
a [10, 20, [5, 6, 7]]
b [10, 20, [5, 6, 7], 30]
*************
a [10, 20, [5, 6]]
b [10, 20, [5, 6]]
深拷贝......
a [10, 20, [5, 6]]
b [10, 20, [5, 6, 7], 30]


原理图

  1. 浅拷贝

image.png

  1. 深拷贝

image.png


例子10:传递不可变对象包含的子对象是可变的情况

a = (10,20,[5,6])
print("a:",id(a))
def test(m):
    print("m:",id(m))
    m[0] = 100  #会报错,因为元组是不可以改变的
    print(m)
test(a)
print(a)

image.png

a = (10,20,[5,6])
print("a:",id(a))
def test(m):
    print("m:",id(m))
    m[2][0] = 500  #不回报错
    print(m)
test(a)
print(a)

image.png

原理图

image.png


例子11:lambda表达式和匿名函数(函数也是一个对象)

f = lambda a,b,c,d:a*b+c*d
ff = [lambda Clichong:Clichong*2,lambda Text:Text*Text ]
def p(a,b,c):
    return a*b*c
hh = [p,p]
qq = [ff,hh,f]
print("qq[0][1](9):",qq[0][1](9),"qq[0][0](9)",qq[0][0](9))
print("qq[1][0]:",qq[1][0](2,3,4),"qq[1][0]:",qq[1][1](3,4,5))
print("qq[2]:",qq[2](1,2,3,4))

image.png


例子12:nonlocal和global关键字的测试

#测试nonlocal关键字的用法
def outer():
    b = 10
    def inner():
        nonlocal b
        print("inner:",b)
        b = 20
    inner()
outer()
#测试全局变量的用法
gl = 100
def outer1():
    global gl
    gl = 1
    print("gl:",gl)
    def inner1():
        print("gl+100:",gl+100)
    inner1()
print(gl)
outer1()

image.png


作业练习:


练习1:定义一个函数实现反响输出一个整数。比如:输入 3245,输出 5432.

def mathmethod(a):
    print("翻转后的结果",end = ':')
    b = str(a)[::-1]
    print(b)
p = int(input("输入一个数字:"))
mathmethod(p)

image.png


练习2:编写一个函数,计算下面的数列

image.png

def mathfuncion(n):
    if n == 1:
        return 1/2
    else:
        return n/(n+1)+mathfuncion(n-1)
a = int(input("请输入一个数字:"))
print(mathfuncion(a))

image.png


练习3:输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示。

import math
x = [0,0,0]
y = [0,0,0]
for i in range(3):
    x[i] = int(input("输入第{0}点的x坐标:".format(i+1)))
    y[i] = int(input("输入第{0}点的y坐标:".format(i+1)))
print("三点坐标为:({0},{1})、({2},{3})、({4},{5})".format(x[0],y[0],x[1],y[1],x[2],y[2]))
p1 = (x[0],y[0])
p2 = (x[1],y[1])
p3 = (x[2],y[2])
def getsquare(a,b,c):
    if (a[0] == b[0] == c[0]) or (a[1] == b[1] == c[1]):
        print("此三点不构成三角形")
    else:
        def getland(t1,t2):
            return math.sqrt((t1[0]-t2[0])**2+(t1[1]-t2[1])**2)
        l1 = getland(p1,p2)
        l2 = getland(p2,p3)
        l3 = getland(p1,p3)
        l = (l1+l2+l3)/2
        sq = math.sqrt(l*(l-l1)*(l-l2)*(l-l3))
        print("三边长分别为:{0}、{1}、{2}".format(l1,l2,l3))
        print("面积为:{0}".format(sq))
getsquare(p1,p2,p3)

image.png


练习4:输入一个毫秒数,将该数字换算成小时数,分钟数、秒数。

import time
start = int(time.time())
sec = int(start/1000)
min = int(sec/60)
hou = int(min/24)
print("hour:{0},minute:{1},second:{2}".format(hou,min,sec))

image.png


练习5:使用海龟绘图。输入多个点,将这些点都两两相连。

import turtle
pen = turtle.Pen()
for i in range(4):
    x1 = int(input("x1:"))
    y1 = int(input("y1:"))
    x2 = int(input("x2:"))
    y2 = int(input("y2:"))
    pen.penup()
    pen.goto(x1,y1)
    pen.pendown()
    pen.goto(x2,y2)
turtle.done()

image.png


目录
相关文章
|
25天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
17天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
17天前
|
Go Python
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
|
18天前
|
人工智能 数据库连接 开发工具
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
33 0
|
4月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
163 67
|
2月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
40 3
|
2月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
64 2
|
2月前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
34 0
|
3月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
78 18
|
3月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
105 8

热门文章

最新文章