Python练习六

1. 编写一个lambda表达式,调用内置函数sorted对列表[111, 55, 4]进行排序,
按列表元素对应字符串的长度从小到大排字符串的长度从小到大排序序

Lst=[111, 55, 4]
Lst1= sorted(Lst, key = lambda x:len(str(x)))  #str:将对应的列表转成字符串
print(Lst1)

结果:
[4, 55, 111]


2. 编写函数,接收任意数量的整数作为参数,返回一个元组,
元组的第一个元素是所有参数的中位数,第二个元素是所有小于中位数参数的平均值,
第三个元素是所有大于中位数参数的平均值。

def func(x):
    L=[]  #小于中位数的数字
    B=[]  #大于中位数的数字
    tuple1=[] #元组
    x.sort()  #先排序
    print(x)
    #求中位数,分两种情况
    #当输入的数字个数为奇数的时候,中位数下标为(n+1)/2
    length=len(x)
    if length%2==1:
        MiddleNum=x[((length+1)//2)-1]
    else:
        #当输入的数字个数为偶数的时候,中位数为(x[n/2-1]+x[(n+1)/2-1])/2
        MiddleNum=(x[(length//2)-1]+x[((length//2)+1)-1])/2
    #遍历数组,看看哪些比中位数大哪些比中位数
    tuple1.append(MiddleNum)
    for y in x:
        if yMiddleNum:
            B.append(y)
    #小于中位数的数字的平均值
    L_averageNum=sum(L)/len(L)
    #大于中位数的数字的平均值
    B_averageNum=sum(B)/len(B)
    tuple1.append(L_averageNum)
    tuple1.append(B_averageNum)
    print(tuple1)
    
x=eval(input("Please input a list:")) #输入任意数量的整数
func(x)

结果:
Please input a list:[5,2,6,8,9,5]
[2, 5, 5, 6, 8, 9]
[5.5, 4.0, 7.666666666666667]


3.    定义一个生成器对象,生成100以内的所有偶数。

def g():
    a=0
    while True:
        yield a
        a=a+2
d = g()
for i in d:
    if i>=100:
        break
    print(i,end='')
    print()

结果:
02468101214161820222426283032343638404244464850525456586062646668707274
767880828486889092949698


4. 有5个人坐在一起,问第五个人多少岁,他说比第四个人大2岁。
问第四个人多少岁,他说比第三个人大2岁。问第三个人,他说比第二个人大2岁。
问第二个个人,他说比第一个人大2岁。最后问第一个人,他说是10岁。
请问第五个人多大?编写递归函数,求第五个人多大,并输出计算结果。

ef func(n):
    if n == 1:
        return 10
    else:
        return func(n-1)+2
print(f"第五个人的岁数为{func(5)}岁")

结果:
第五个人的岁数为18岁


5.编写函数fun(n),其功能是计算并输出多项式
s=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3…+n)的值。
在主程序中输入正整数n,调用函数fun,最后输出计算结果。

n=eval(input("Please input a number:"))
s=0
def fun(n):
    if n == 1:
        return 1
    else:
        for i in range(1,n+1):
            b= 1/(fun(n-1)+n)
        s=s+b
    return s
fun(n)


def fun(n):
    s=0
    i=1
    m=0
    while(i<=n):
        m=m+i
        i=i+1
        s=s+(1/m)
    return s
n=eval(input("Please input a number:"))
b=fun(n)
print(b)结果:
Please input a number:2
1.3333333333333333


6.使用wordcloud将如下文本生成词云图
'编写程序就是用计算机语言实现算法的过程。
可以证明,任何问题都可以由三种基本结构表达出来。
这三种基本结构包括顺序结构、选择结构和循环结构。

import wordcloud 
import jieba
string='编写程序就是用计算机语言实现算法的过程。可以证明,任何问题都可以由三种基本结构表达出来。这三种基本结构包括顺序结构、选择结构和循环结构。'
jbstr=''.join(jieba.lcut(string))
wc=wordcloud.WordCloud(font_path='C:\Windows\Fonts\simkai.ttf',background_color='white',
                        width=500,height=400)
wc.generate(jbstr) #生成词云
wc.to_file('wc.png') #保存为图片文件wc.png


7. 使用turtle库绘制一个五角星图案。(五角星的每个角的角度是36度)

import turtle
for _ in range(5): #循环五次
    turtle.fd(350)  #绘制200像素长的直线
    turtle.right(144) #每绘一根线条就右转144度
turtle.done() #绘图结束,保持界面不关闭


import turtle
turtle.penup() #“拿起”笔
turtle.goto(0, 0)#让笔去到(0,0)位置
turtle.pendown()#“放下”笔
turtle.pencolor("blue")#笔色为篮
turtle.begin_fill()#开始填充
turtle.fillcolor('yellow')#填充颜色为红
for i in range(5):#循环五次
    turtle.forward(300)#向前
    turtle.right(144)#向右
turtle.end_fill()#停止填充
turtle.done() #保持界面不关闭

你可能感兴趣的:(python,python,开发语言)