Python实验报告2

  • 定义一个无参函数,输出“欢迎您的到来!”,然后在主程序中调用该函数。
def myfun():
    print("欢迎您的到来!")
myfun()
  • 定义一个函数,参数为一个实数,代表一个摄氏温度值,将它转换为一个华氏温度值,并返回该值(F = 1.8C + 32)。在主程序中调用该函数。
    Python实验报告2_第1张图片
  • 定义一个函数,函数参数为一个小于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=' ')

Python实验报告2_第2张图片

  • 练习随机数应用。请生成50个随机数据,模拟一个班的考试成绩(要求在40~100分之间)。计算这批数据的平均分、最高分和最低分,并排序由高到低输出。
import random
from random import randint
random.seed(7)
a=[randint(40,100) for i in range(50)]
a.sort()
#avg 方法一:
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)

Python实验报告2_第3张图片

  • 使用turtle库绘制一个五角星图案。¶
    注:turtle的绘图结果不会显示在notebook中,将另行弹出新窗口显示,且由于窗口程序兼容性问题,会出现turtle程序上次运行正确,下次运行报错,再下次运行又正确的情况。
import turtle
count=1
while count<=5:
    turtle.forward(100)
    turtle.right(144)
    count+=1
turtle.done()

Python实验报告2_第4张图片

  • 将第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')

在这里插入图片描述

你可能感兴趣的:(Python,python)