Python 基础练习题(二)

简介: Python 基础练习题

实例020:计算极差

题目:请你根据成绩单计算出每个人的成绩极差,所谓极差就是最高成绩和最低成绩的差值。

scores = [
    {
        '姓名': '雯雯',
        '成绩': {'语文': 95, '数学': 100, '英语': 93}
    },
    {
        '姓名': '闻闻',
        '成绩': {'语文': 92, '数学': 98, '英语': 97}
    },
    {
        '姓名': '贝贝',
        '成绩': {'语文': 96, '数学': 96, '英语': 92}
    }
]
scores = [
    {
        '姓名': '雯雯',
        '成绩': {'语文': 95, '数学': 100, '英语': 93}
    },
    {
        '姓名': '闻闻',
        '成绩': {'语文': 92, '数学': 98, '英语': 97}
    },
    {
        '姓名': '贝贝',
        '成绩': {'语文': 96, '数学': 96, '英语': 92}
    }
]
for i in scores:
    x = i['成绩']
    b = []
    for y in x:
        b.append(x[y])
    c = max(b) - min(b)
    print('{}同学成绩的极差是:{}'.format(i['姓名'], c))

实例021:欢迎同学

题目:请你根据班级编号,打印欢迎xx新同学xx!。

staff = {
    'KK-01A-023': '小新',
    'KK-01A-024': '正南',
    'KK-01B-034': '妮妮',
    'KK-01B-035': '阿呆',
    'KK-01C-006': '风间'
}
deps = {
    '01A': '樱桃班',
    '01B': '玫瑰班',
    '01C': '樱花班',
}
staff = {
    'KK-01A-023': '小新',
    'KK-01A-024': '正南',
    'KK-01B-034': '妮妮',
    'KK-01B-035': '阿呆',
    'KK-01C-006': '风间'
}
deps = {
    '01A': '向日葵',
    '01B': '玫瑰班',
    '01C': '樱花班',
}
for x in deps:
    for  y in staff:
        if x == y[3:6]:
            print('欢迎{}新同学{}!'.format(deps[x],staff[y]))

实例022:打破循环

题目:求输入数字的平方,如果平方运算后大于 100 则退出,否则将平方数插入列表。

ls = []
while True:
    num = int(input('请您输入一个正整数:'))
    if num **2 > 100:
        break
    else:
        ls.append(num**2)
print(ls)

实例023:交换变量

题目:两个变量值用函数互换。

def num(x, y):
    a, b = x, y
    print('调换前a={},b={}'.format(a,b))
    a, b = b, a
    print('调换后a={},b={}'.format(a, b))
num(10, 20)

实例024:交换位置

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

list = [3, 2, 5, 7, 8, 1, 6]
x = max(list)
y = min(list)
list[list.index(x)], list[0] = list[0], x
list[list.index(y)], list[-1] = list[-1], y
print(list)

实例025:制做函数

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n。

n = int(input('请您输入一个正整数:'))
def num(x):
    s = 0
    if x % 2 == 0:
        for i in range(2, x + 1, 2):
            s = round(s + 1 / i, 2)
    else:
        for i in range(1, x + 1, 2):
            s = round(s + 1 / i, 2)
    return s
print(num(n))

实例026:求未知数

题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

for i in range(10, 100):
    if len(str(809 * i)) == 4 and len(str(8 * i)) == 2 and len(str(9 * i)) == 3:
        print('神秘两位数字是{}:'.format(i))
        print('809*??结果为{}:'.format(809 * i))

实例027:字符求和

题目:从键盘上输入的若干个用英文逗号分隔的整数,计算所有输入整数的和并输出。


例如输入1,2,3返回6

n = input('请输入用英文逗号分隔的若干个整数')
nums = n.split(',')
s = 0
for i in nums:
    s += int(i)
print(s)

实例028:首母大写

题目:将列表 list1 中的所有单词的首字母都转换成大写并打印。

list1 = ['apple', 'banana']
for i in range(len(list1)):
    list1[i] = list1[i].capitalize() #写为list1[i].title()也是可以的
print(list1)

实例029:整数平方

题目:写一个程序,功能是从键盘上获得用户输入的正整数,并输出该正整数的反转数(123 的反转数是 321)的平方。如果输入的是非正整数,则输出“不符合要求”。

num = input('请您输入一个正整数:')
if int(num) > 0:
    num = num[::-1]
    num = int(num) ** 2
    print(num)
else:
    print('不符合要求')

实例030:判断整数

题目:编写函数判断输入的字符串是否是整数形式字符串,如果是则输出 True,不是则输出 False。输入123 返回True ,输入-123、a123返回False。

方法一
a = input('请您输入一个字符串:')
print(True if a.isnumeric() == True else False)
方法二
a = input('请您输入一个字符串:')
try:
    if int(a)>0:
        print(True)
    else:
        print(False)
except:
    print(False)

实例031:字母去重

题目:定义函数接受一个字符串作为参数,返回去重后的字符串;函数体内必须使用字典处理字符串;调用函数,对字符串进行去重,并打印结果。例如将 'AaaBbb' 变成 'AaBb'。

def str1(s):
    dict1 = {}
    for i in s:
        dict1[i] = 0
    str2 = "".join(dict1.keys())
    return str2
print(str1('AaaBbb'))

实例032:最大是谁

题目:编写一个程序返回字典中年龄最大的人是谁?

dict = {'雯雯': 18, '桔桔': 23, '贝贝': 20}
list = []
for x,y in dict.items():
        list.append(y)
z = max(list)
for i in dict:
    if dict[i]==z:
        print('年龄最大的是:{}'.format(i))

实例033:百元百鸡

题目:雯雯要有一百元买一百只鸡,公鸡5元/只,母鸡4元/只,小鸡1元/3只,请您编写程序求出100元可以买多少只公鸡,多少母鸡,多少小鸡数量加起来刚好100只。

for x in range(1,100):
    for y in range(1,100):
        z = 100 -x-y
        if (5*x+4*y+z/3==100):
            print(x,y,z)

实例034:数字交换

题目:请你将列表内相邻两个数字进行交换。例如ls = [2,1,4,3] 返回列表ls = [1,2,3,4]

a = [2,1,4,3,6,5,8,7,10,9,12,11]
b = a[1::2]
c = a[0::2]
d = []
for i in  list(zip(b,c)):
    d.append(i[0])
    d.append(i[1])
print(d)

实例035:随机号码

题目:请您编写一个随机双色球号码程序。

import random
while True:
    a = random.sample(range(1,34),6)
    a.sort()
    b = str(random.randint(1,16))
    for i in range(len(a)):
        a[i]=str(a[i])
    print('随机双色球号码是:')
    print('红球: {}'.format( ' '.join(a)))
    print('篮球: {}'.format( b))
    c = input('是否继续随机号码:1.y或Y 继续 2.n或N退出')
    if c=='n' or c=='N':
        break

实例036:联系方式

题目:有两个班级信息表class1和class2,包含人员手机号码、QQ号码及人员微信信息表WX。

1.请你将两个班级信息进行合并,并将WX内每个人微信号码加入对应人员信息表内;

例如 '小新': [13913000001, 1819122001,'xx9907'],如果WX内没有微信号,微信号为手机号码;

2.将小新手机号码修改为13913000006;

3.可提供查询服务,输入人名打印对应人员信息表,如果人员不存在打印"不好意思哦!没有查询到xx同学的联系方式"。

class1 = {
    '小新': [13913000001, 1819122001],
    '小亮': [13913000002, 1819122002],
    '小刚': [13913000003, 1819122003]
}
class2 = {
    '大刘': [13914000001, 1819123001],
    '大王': [13914000002, 1819123002],
    '大张': [13914000003, 1819123003]
}
WX = {
    '小新':'xx9907',
    '小刚':'gang1004',
    '大王':'jack_w',
    '大刘':'liu666'
class1 = {
    '小新': [13913000001, 1819122001],
    '小亮': [13913000002, 1819122002],
    '小刚': [13913000003, 1819122003]
}
class2 = {
    '大刘': [13914000001, 1819123001],
    '大王': [13914000002, 1819123002],
    '大张': [13914000003, 1819123003]
}
class1.update(class2)
WX = {
    '小新': 'xx9907',
    '小刚': 'gang1004',
    '大王': 'jack_w',
    '大刘': 'liu666'
}
for x in WX:
    if x in class1:
        class1[x].append(WX[x])
for y in class1:
    if y not in WX:
        class1[y].append(class1[y][0])
class1['小新'][0] = 13913000006
name = input('请您输入需要查询人员姓名:')
if name in class1:
    print('{}同学的个人信息是:手机号码:{}、QQ号码:{}、微信号码:{}'.format(name, class1[name][0], class1[name][1], class1[name][2]))
else:
    print('不好意思哦!没有查询到{}同学的联系方式'.format(name))

实例037:谁是最佳

题目:6名同学参加比赛,请你找出最佳好声音,去掉最高和最低分,由高到低打印选手名字。

good_voice = {
    '雯雯':[90,94,97,86,85,89,88,85],
    '闻闻':[91,91,92,98,90,96,90,95],
    '贝贝':[96,86,97,96,87,86,86,96],
    '桔桔':[95,95,94,93,97,98,99,95],
    '壮壮':[95,87,94,94,93,99,96,97],
    '林林':[89,97,91,95,89,94,97,92]
}
good_voice = {
    '雯雯':[90,94,97,86,85,89,88,85],
    '闻闻':[91,91,92,98,90,96,90,95],
    '贝贝':[96,86,97,96,87,86,86,96],
    '桔桔':[95,95,94,93,97,98,99,95],
    '壮壮':[95,87,94,94,93,99,96,97],
    '林林':[89,97,91,95,89,94,97,92]
}
average = {}
for x in good_voice:
    y = round((sum(good_voice[x])-max(good_voice[x])-min(good_voice[x]))/6,2)
    average[x]=y
rank = dict(sorted(average.items(),key=lambda c:c[1],reverse=True))
print('本次比赛排名为:')
for n in rank:
    print('选手{}-平均分:{}'.format(n,rank[n]))

实例038:谁未参加

题目:班级共有25名同学,班级打算举办一次摸底考试,有的同学参加一门,有的同学参加两门,有的同学参加三门,还有的同学干脆一门都没有参加,请你找出多少人未参加本次考试?哪些同学分别参加一、二、三门考试?

test = {
    '语文': ['李  雷', '韩梅梅', '王晓刚', '陈  静', '方  向', '雯  雯'],
    '数学': ['李  然', '李芳芳', '刘小贝', '方  向', '孙一航', '俞小曼'],
    '英语': ['陈  静', '方  向', '刘小贝', '韩梅梅', '施小冉', '雯  雯']
}
test = {
    '语文': ['李  雷', '韩梅梅', '王晓刚', '陈  静', '方  向', '雯  雯'],
    '数学': ['李  然', '李芳芳', '刘小贝', '方  向', '孙一航', '俞小曼'],
    '英语': ['陈  静', '方  向', '刘小贝', '韩梅梅', '施小冉', '雯  雯']
}
course = {}
for x in test:
    for y in test[x]:
        if y in course:
            course[y] = course[y] + 1
        else:
            course[y] = 1
a = []
b = []
c = []
count = tuple(sorted(course.items(),key=lambda x:x[1]))
print('全部同学有{}人参加考试,有{}人没有参加考试。'.format(len(course),25-len(course)))
for z in count:
    if z[1]==1:
        a.append(z[0])
    elif z[1]==2:
        b.append(z[0])
    else:
        c.append(z[0])
print('参加一门考试的同学是:{}'.format('、'.join(a)))
print('参加二门考试的同学是:{}'.format('、'.join(b)))
print('参加三门考试的同学是:{}'.format('、'.join(c)))

实例039:寻找中位

题目:请你定义一个函数返回两个列表合并后的中位数。


例如ls = [1,2,3]返回2,ls = [1,2,3,4]则返回(2+3)/2=2.5

def median(nums1, nums2):
    num = (nums1 + nums2)
    num.sort()
    if len(num) % 2 == 0:
        x1 = num[int(len(num) / 2) - 1]
        x2 = num[int(len(num) / 2)]
        return (x1 + x2) / 2
    else:
        return num[int(len(num) / 2)]
相关文章
|
存储 Python
Python经典练习题(四)
Python经典练习题(四)
Python经典练习题(四)
|
存储 Web App开发 开发者
Python 自动化指南(繁琐工作自动化)第二版:附录 C:练习题的答案
Python 自动化指南(繁琐工作自动化)第二版:附录 C:练习题的答案
126 0
|
存储 Python
Python经典练习题(三)
Python经典练习题(三)
|
存储 索引 Python
【python】——组合数据类型(单选练习题)
【python】——组合数据类型(单选练习题)
|
算法 Python
python文件读取操作练习题(统计单词)
python文件读取操作练习题(统计单词)
195 0
|
Python
Python|PTA练习题
Python|PTA练习题
255 0

热门文章

最新文章

推荐镜像

更多