Python第一次上机实习


1.用户输入a、b两个列表,计算两个列表对应元素的乘积的累加和。如果列表长度不一致,则以较短的列表为主,忽略较长列表的其他元素。如列表a=[1,2,3],列表b=[4,5,6,7],则对应元素乘积的累加和为14+25+3*6=32。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 分别让用户输入两个列表a和b,初始和为0
a = eval(input("请输入列表1:"))
b = eval(input("请输入列表2:"))
result = 0

# 计算两列表对应元素的乘积的累加
for i, j in zip(a, b):
    result += i*j

print(result)

2.随机生成20个在1(含)到999(含)之间的随机数,每个随机数后跟随一个逗号进行分隔,按照升序输出到屏幕上。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from random import randint
# 创建空列表存储数据
lst = []
for i in range(20):
    # 在1~999随机生成20个数据,并放到lst列表中
    a = randint(1, 999)
    lst.append(a)

# 将列表中的升序排列的数据依次打印出,并使用逗号分隔
lst.sort()
for j in lst:
    print(j, end=',')
  1. 要求用户输入若干常见的手机品牌,以字符串形式存入一个列表,并随机选择一个手机品牌输出到屏幕上。如[“华为”,”苹果”,”诺基亚”,”OPPO”,”小米”],随机输出为“小米”。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    from random import choice
    
    # 让用户输入一个列表
    phones = eval(input("请输入一个手机品牌的列表:"))
    
    # 随机输出一个手机品牌
    print(choice(phones))
  2. 用户输入某毕业班各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。要求统计各行业就业的学生数量,按数量从低到到方式输出。

如输入:交通 金融 计算机 交通 计算机 计算机,

输出格式为(其中冒号为英文冒号)

计算机: 3

交通: 2

金融: 1

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 让用户分别输入每个同学就业的行业名称
jobsName = input("请输入各个同学行业名称,行业名称之间用空格间隔(按回车结束输入):")

# 将用户输入的行业分隔后存储到列表中
jobsName = jobsName.split()

# 创建空字典用于存储行业以及行业对应的人数
result = {}
for i in jobsName:
    # 计算每个数量的人数,每个行业(键)对应的值为相应的个数
    result[i] = jobsName.count(i)

# 将字典中的值放在一个列表中,并且按照数量进行排序
lst = list(result.items())
lst.sort(key=lambda x: x[1], reverse=True)

# 按照数量的排序,依次输出行业及对应的人数
for k in range(len(lst)):
    a, b = lst[k]
    print("{}:{}".format(a, b))

5.中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”。即,一个整数除以三余二,除以五余三,除以七余二,求这个整数是多少?

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 使用枚举法依次测试每个整数,直到出现结果
n=1
# 每个数据依次尝试,先让n除以三余二
while n % 3 != 2:
    n += 1

# 满足除以三余二后,每次让n增加3(确保上面的条件仍然满足)来满足除以五余三
while n % 5 != 3:
    n += 3
# 满足除以五余三后,每次让n增加15(确保前面两个条件仍然满足)来满足除以七余二
while n % 7 != 2:
    n += 15

# 输出结果
print("这个整数的值为:{}".format(n))

6.(选做)猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 倒这考虑,前一天的桃子数量为当天的数量加1后乘以二即可
# 根据题目,第10天早上的桃子为1个,即第九天吃完还剩1个
day = 10
number = 1

# 倒着计算9次即可计算出第一天摘的桃子数量
for i in range(day-1):
    # 前一天的个数为当前天的+1后*2
    number = (number+1)*2
print(number)

文章作者: 陈细利
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陈细利 !
评论
 上一篇
Python第二次上机实习 Python第二次上机实习
1.用户任意输入某年某月某日,判断这一天是这一年的第几天? #!/usr/bin/env python # -*- coding:utf-8 -*- # 先让用户分别输入年月日 year = int(input("年:")) mouth
下一篇 
Python编程从入门到实践答案9 Python编程从入门到实践答案9
这本书是我自学Python的第一本书,里面的习题都在寒假已经完成,由于当时博客尚未搭建,故里面题目的答案并未发表。现在在开发项目博客没有新内容更新,因此这段实践会陆续上传原来的习题答案。每个题目均为自己设计的代码,优化与重构方面与标准答案可
  目录