找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3868|回复: 1

[求助] 大一 python 实训报告

1

主题

1

帖子

1

积分

贫民

积分
1
侥幸 发表于 2020-12-12 14:59:40 | 显示全部楼层 |阅读模式
完成基础知识的准备下,完成程序设计:
(一)给一个范围,让用户去猜这个数字是多少,并输入自己猜测的数字,系统判定是否给定的数字,并给出相应的提示信息,直到猜中为止。
参考程序(有程序说明和心得
import random
number = random.randint(1, 100)
guess = 0
while True:
        num_input = input('请输入一个1100的整数:')
        guess += 1
        if not num_input.isdigit():
                print('请输入一个1100的整数!!')
        elif int(num_input) <= 0 or int(num_input) >= 100:
                print('输入的数必须是1100之间的整数!!')
        else:
                if number == int(num_input):
                        print(f'恭喜您,猜对了,您总共猜了{guess}次。')
                        print('-' * 30)
                        quit = input('是否退出? y(退出)')
                        if quit == 'y':
                                break
                        else:
                                guess = 0
                                number = random.randint(1, 100)
                                continue
                elif number > int(num_input):
                        print('您输入的数字小了!!')
                elif number < int(num_input):
                        print('您输入的数字大了!!')
                else:
                        print("系统发生问题!?")


实训目的:熟练运用列表、元组、字典、集合等各种数据类型,在设计程序中灵活运用这些数据类型简化程序,提高程序设计效率。
完成如下两道程序设计(有程序说明和心得
(一)按降序合并如下两个list, 并去除重复的元素:
list1 = [2, 3, 8, 4, 9, 5, 6]
ist2 = [5, 6, 10, 17, 11, 2]
参考程序
list1 = [2, 3, 8, 4, 9, 5, 6]
list2 = [5, 6, 10, 17, 11, 2]
l3 = list1 + list2
s1 = set(l3)    # 去重
l4 = list(s1)
l4.sort(reverse=True)
print(l4)
(二)、某学校3办公室,有8老师等待分配办公室,编写程序完成办公室的随机分配。
参考程序:
import random
teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
offices = [[], [], []]
for i in teachers:
    off_num = random.randint(0, 2)
    offices[off_num].append(i)
# print(offices)
j = 1
for office in offices:
    print(f'办公室{j}号,有老师{len(office)}')
    for name in office:
        print(name)
    j += 1



实训目的:加深函数基本知识的理解能够熟练运用函数,对函数的语法、参数、作用域等知识点理解深刻。
完成如下两道程序设计(有程序说明和心得
(一)编写函数,求两个正整数的最小公倍数。
参考程序
# 定义函数
def lcm(x, y):
    #  获取最大的数
    if x > y:
        greater = x
    else:
        greater = y
    while True:
        if (greater % x == 0) and (greater % y == 0):
            lcm1 = greater
            break
        greater += 1
return lcm1
(二)编写函数,求出1 /(1*2)-1/(2*3)+1(3*4)-1/(4*5)+......”前n项的和,函数以n为参数,它是用户输入的。
参考程序:
def sum(n):
    res = 0
    while n >= 1:
        if n % 2 == 0:
            res -= 1.0/(n*(n+1))
        else:
            res += 1.0/(n*(n+1))
        n -= 1
    return res
num = int(input("请输入一个整数:"))
print(sum(num))

回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
燕双鹰 发表于 2020-12-20 15:11:44 | 显示全部楼层

回帖奖励 +1 点威望

是修改代码 还是 ???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表