#!/usr/bin/env python
# coding: utf-8
# # 22.函数
# ## (1)定义:
# (1)是有特定功能可重复使用的代码块
# (2)作用是降低编程难度和代码复用。
# (3)先定义再调用最后才执行。
# (4)格式:
# def<函数名>(参数(0个或多个)):
# <函数体>
# return 返回值或表达式
# (5)形式参数和实际参数(形参和实参)
# 形参:定义函数里面的参数
# 实参:在键盘上输入对应的函数值
# 一定是实参传给形参
# (6)全局变量和局部变量(变量名相同时易混淆)
# 全局变量:在主体程序里的变量
# 局部变量:在定义函数里的变量
#
# ## (2)函数的分类:
# (1)内建函数
# (2)库函数
# (3)自定义函数
#
# eg.1TempConvert
# In[1]:
T_S=input('请输入带符号的温度值:')
# In[21]:
if (TempStr[-1]in['F','f']):
C=(eval(TempStr[0:-1])-32)/1.8
print('转换后的温度值:{:.2f}C'.format(C))
elif (TempStr[-1] in ['C','c']):
F=eval(TempStr[0:-1])*1.8+32
print('转换后的温度值:{:.2f}F'.format(F))
else :
print('输入数据错误!')
# #### eg2.计算n!
# In[28]:
def fact(n):
N=1
for i in range(1,n+1):
N=N*i
print(N)
return fact(N)
# In[29]:
fact(2)
# In[30]:
fact(5)
# In[31]:
fact(10000)
# # 11.25
# (4)参数
# 默认参数:给形参赋初值
# 位置参数:形参与实参顺序位置一致
# 关键字参数:形参与实参变量名相同并赋值,顺序可以不相同
# 可变长度参数:参数个数可变,在参数前加一个*或两个**
# 一个*:多个位置参数放在一个元组中;
# 两个**:多个关键参数放在一个字典中)
# 序列解包参数(实参):实参为列表或元组时进行解包
#
# In[13]:
def myfunc(x,y=10,*z1,**z2):
Sum1=x+y
Sum2=0
Sum3=0
for i in range(len(z1)):
Sum2=Sum2+z1[i]
for j in z2.values():
Sum3=Sum3+j
return Sum1,Sum2,Sum3,z1,z2,x,y
# In[14]:
myfunc(10,100,1,10,20,30,y1=10,y2=20,y3=30)
# In[15]:
def myfunc(x,y=10,*z1,**z2):
t1=x+y
t2=0
t3=0
for i in range(len(z1)):
t2=t2+z1[i]
for j in z2.values():
t3=t3+j
return t1,t2,t3,x,y
# # eg:七段电子管绘制
# 导入库函数
# 三种格式:
# (1)import 库名
# 库名.函数方法(参数)
# (2)import 库名 as 自定义简写库名
# 简写库名.函数方法(参数)
# (3)from 库名 import 函数名或者*
# 函数方法(参数)
#
#
# 函数的分类:
# (1)内律函数:安装软件自带,直接调用无需导入
# (2)库函数:标准函数(安装软件自带,但需要导入)和第三方函数(自定义安装且导入)
# (3)自定义函数:自己编写的功能代码块
# In[2]:
from turtle import *
# ——绘制七段线数码管数字“8”
#
# In[3]:
pensize(5)
pencolor('purple')
fd(80)
right(90)
fd(80)
right(90)
fd(80)
right(90)
fd(80)
fd(80)
right(90)
fd(80)
right(90)
fd(80)
hideturtle()
done()
# In[4]:
def drawLine(draw):
if draw:
pendown()
else:
penup()
fd(80)
right(90)
# In[5]:
def drawLine(draw):
pendown() if draw else penup()
fd(80)
right(90)
# In[ ]:
# 二,绘制0-9 十个数字中需要用到1-7线段
# In[6]:
def drawDigit(i):
drawLine(True) if i in [2,3,4,5,6,8,9,] else drawLine(False)
drawLine(True) if i in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if i in [0,2,3,5,6,8,] else drawLine(False)
drawLine(True) if i in [0,2,6,8] else drawLine(False)
left(90)
drawLine(True) if i in [0,4,5,6,8,9,] else drawLine(False)
drawLine(True) if i in [0,2,3,5,6,8,9,] else drawLine(False)
drawLine(True) if i in [0,1,2,3,4,7,8,9,] else drawLine(False)
left(180)
penup()
fd(20)
# In[7]:
def drawDate(date):
for i in date:
drawDigit(eval(i))
# In[8]:
def main():
setup(1000,360,200,200)
penup()
fd(-400)
pensize(5)
pencolor('red')
drawDate('20211125')
hideturtle()
done()
# In[9]:
main()
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]: