- 定义一个无参函数,输出“欢迎您的到来!”,然后在主程序中调用该函数。
def myfun():
print("欢迎您的到来!")
myfun()
- 定义一个函数,参数为一个实数,代表一个摄氏温度值,将它转换为一个华氏温度值,并返回该值(F = 1.8C + 32)。在主程序中调用该函数。
- 定义一个函数,函数参数为一个小于10000的正整数,分解它的各位数字,并以一个元组的形式返回。在主程序中调用该函数。
def position(a):
lst=[]
for i in str(a):
lst.append(int(i))
return print(tuple(lst))
position(12345)
lst2=[]
def position2(b):
if 0<b<10:
lst2.append(b)
else:
position2(b//10)
lst2.append(b%10)
return lst2
print(tuple(position2(12345)))
- 编写一个lambda表达式,对给定的列表[1, 2, 3, 4, 5],把它的每个元素值分别加上10,生成一个新列表。
def mylamb(lt):
for i in range(len(lt)):
lt[i]=lt[i]+10
return lt
lst=[1,2,3,4,5]
print(mylamb(lst))
- 定义一个yield生成器函数,生成200以下5的所有倍数。
def myyield():
a=1
b=1
while a<=200:
if b%5==0:
a=b
yield a
b+=1
else:
b+=1
number=myyield()
for i in number:
if i>200:
break
print(i,end=' ')
- 练习随机数应用。请生成50个随机数据,模拟一个班的考试成绩(要求在40~100分之间)。计算这批数据的平均分、最高分和最低分,并排序由高到低输出。
import random
from random import randint
random.seed(7)
a=[randint(40,100) for i in range(50)]
a.sort()
total=0
for i in range(len(a)):
total=total+a[i]
avg=total/len(a)
print("平均分:",avg)
avg2=sum(a)/len(a)
print("平均分:",avg2)
print("最低分:",min(a))
print("最低分:",a[0])
print("最高分:",max(a))
print("最高分:",a[49])
b=a[::-1]
print("高到低:",b)
- 使用turtle库绘制一个五角星图案。¶
注:turtle的绘图结果不会显示在notebook中,将另行弹出新窗口显示,且由于窗口程序兼容性问题,会出现turtle程序上次运行正确,下次运行报错,再下次运行又正确的情况。
import turtle
count=1
while count<=5:
turtle.forward(100)
turtle.right(144)
count+=1
turtle.done()
- 将第7题的代码改写为一个绘制五角星的函数,可以绘制指定边长和填充色的五角星。在画板上随机绘制若干五角星
import turtle as t
def mystart(length,col):
count=1
t.fillcolor(col)
t.begin_fill()
while count<=5:
t.forward(int(length))
t.right(144)
count+=1
t.end_fill()
t.done()
mystart(100,"red")
import turtle as t
import random
def manystarts():
count=1
x = random.randrange(-200, 200)
y = random.randrange(-200, 200)
t.fillcolor("green")
t.penup()
t.goto(x,y)
t.pendown()
t.begin_fill()
while count <=5:
t.forward(100)
t.right(144)
count+=1
t.end_fill()
for _ in range(5):
manystarts()
- 编写函数,接收任意数量的整数作为参数,返回一个元组,元组的第一个元素是所有参数的中位数,第二个元素是所有小于中位数参数的平均值,第三个元素是所有大于中位数参数的平均值
def myfun(*p):
lt1=[]
lt2=[]
a=list(p)
a.sort()
print(a)
if len(a)%2==0:
b=(a[len(a)//2]+a[(len(a)+1)//2])/2
else:
b=a[(len(a)+1)//2]
for i in range(len(a)):
if a[i]<b:
lt1.append(a[i])
avg1=sum(lt1)/len(lt1)
for i in range(len(a)):
if a[i]>b:
lt2.append(a[i])
avg2 = sum(lt2)/len(lt2)
return b,avg1,avg2
print(myfun(7,3,5,8,2,9))
- 编写一个函数,其参数为两个正整数,将这两个正整数之间的所有素数以一个元组的形式返回
def mynum(x,y):
p=[]
if x>y:
x,y=y,x
print("x,y=",x,y)
for i in range(x,y+1):
for j in range(2,i):
if i % j ==0:
break
elif j==i-1:
p.append(i)
print(tuple(p))
mynum(10,20)
- 编写一个函数isGoodpwd(s),检查传入的字符串s是否是一个好密码,返回True或False。好密码的标准:密码长度>=8, 只能由字母和数字构成,且必须同时含有大小写字母和数字,不能含有空格和标点符号等特殊字符。
import re
def isGoodped(s):
x = re.compile(r'[0-9a-zA-Z]{8,30}')
if x.fullmatch(s) is None:
return False
else:
return True
print("12345678Aa:",isGoodped('12345678Aa'))
print("12345678Aa*:",isGoodped('12345678Aa*'))
- 编写函数getdigit(s),提取出一个字符串中所有的数字,以列表形式返回。例如有字符串“我的电话180, 学号 2, 班级号 1954201”, 则应返回[‘180’, ‘2’, ‘1954201’] 。
import re
def getdigit(s):
print(re.findall(r"\d+",s))
getdigit('我的电话180, 学号 2, 班级号 1954201')