python基础测试题

Python基础班测试题

 

1、编写一个函数,调用函数返回四位不含0的随机数. (10分)

2、依次取下面字典中的”小白”“好好学习”“天天向上”并打印。(10分)

class_info = {"python":[

    {"name":"小明","hobby":["写python", "好好学习"]},

    {"name":"小白","hobby":["跑步", "吃饭"]},

    {"name":"小红","hobby":["98k", "天天向上"]},

]}

3、输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数,并判断他的指数处于什么级别。(15分)

例如:一個52公斤的人,身高是1.55m,则BMI为 :

52/(1.55**2) = 21.6

BMI指数:

低于18.5:过轻18.5-25:正常   25-28:过重  28-32:肥胖高于32:严重肥胖

4、以下代码输入什么结果,并说明原因。(10分)

a=1
b=c=[]
def fun(a,c):
      a=2
      c.append(1)
fun(a,c)
print(a,b,c)

 

5、题目:一球从 100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?(15)

6、提示用户输入5个整数,依次存入到列表中,并且按照从大到小的顺序依次输出到终端上

。(20)

7  在python3中,编写函数,实现接收一个字符串,分别统计大写字母,小写字母,数字,其它字符的个数,并以元组的形式返回结果(利用函数判断,循环实现)。(20)

答案

第一题

# -*- coding: utf-8 -*-
import random
def random_number():
    i=0
    random_list=[]
    while i<4:
        random_list.append(random.randint(1,9))
        i+=1
    return tuple(random_list)
random_tuple=random_number()
for num in random_tuple:
    print(num)

第二题

# -*- coding: utf-8 -*-
class_info = {"python":[
    {"name":"小明","hobby":["写python", "好好学习"]},
    {"name":"小白","hobby":["跑步", "吃饭"]},
    {"name":"小红","hobby":["98k", "天天向上"]},
]}
a=class_info["python"][1]["name"]
b=class_info["python"][0]["hobby"][1]
c=class_info["python"][2]["hobby"][1]
print(a,b,c)

第三题

# -*- coding: utf-8 -*-
def BMI_level(height,weight):
    BMI=weight/height**2
    level=""
    if BMI<18.5:
        level="过轻"
    elif BMI<25:
        level="正常"
    elif BMI<28:
        level="过重"
    elif BMI<=32:
        level="肥胖"
    else:
        level="严重肥胖"
    return BMI,level
BMI_level=BMI_level(1.55,52)
print(BMI_level)

第四题

# -*- coding: utf-8 -*-
"""
1
[1]
[1]
"""
"""
a是全局变量,想要在局部修改就必须用global修饰。a只是一个变量,把a传给函数fun()的实参,可以看作值传递;
而函数中的a也只是一个变量,a=2,这里给变量重新赋值而不改变全局变量的值,只是将2的地址传给局部变量

变量b和c只是存储了空字符串的地址值,我们假设为0x0001。在函数fun()中,传入实参c,这里看作引用传递,c.append(1)通过引用全局变量c的地址找到
空字符串,并向空字符串中添加元素1,这个字符串的地址没变0x0001,内容变为了[1]。
b和c中存储的地址值都是0x0001,指向[1],故而输出的都是[1]
"""

第五题

# -*- coding: utf-8 -*-
def route(start,n):
    end_height=start*0.5**n
    i=0
    route_long=0
    while i<n:
        if i==0:
            route_long+=start
        else:
            route_long+=start*0.5**i*2
        i+=1
    return route_long,end_height
route_long,end_height=route(100,10)
print(route_long,end_height)

第六题(其实用sort()做更简单)

# -*- coding: utf-8 -*-
def func():
    i=0
    int_list=[]
    while i<5:
        int_list.append(int(input("请输入第%d个数"%(i+1))))
        i+=1
    for j in range(len(int_list)-1):
        for k in range(len(int_list)-j-1):
            if int_list[k]<int_list[k+1]:
                int_list[k],int_list[k+1]=int_list[k+1],int_list[k]
    for a in int_list:
        print(a)
func()

第七题

# -*- coding: utf-8 -*-
str=input("请输入字符串")
def tongji(str):
    big,small,num,other=0,0,0,0
    for char in str:
        if char.isupper():
            big+=1
        if char.islower():
            small+=1
        if char.isdigit():
            num+=1
    other=len(str)-big-small-num
    return big,small,num,other
tuple=tongji(str)
print(tuple)

猜你喜欢

转载自blog.csdn.net/shuzhikang/article/details/81489058
今日推荐