Python基础作业有四道题不会

Python011

Python基础作业有四道题不会,第1张

1、元组是不能排序,但他也没有让你排序呀!简单说就是直接把元组转成列表然后进行排序并输出就好了。方法很多,多做尝试。

2、简单编写:

n1 = input('输入一个整数:')

n2 = input('输入一个整数:')

print(n1+n2)

(思路:在键盘获取两个整数,注意一定要规定数据类型。将获取来的值赋给变量,在对变量进行加操作并打印就成了。)

3、简答编写(程序并不完成,学习自己钻研):

class Person:

……

def say_hello(self):

print("hello!")

# Python3.6

# 导入random模块

import random

# 定义一个人椅的类

class ManAndBench:

    def __init__(self, n_bench):

        self.bench_num = n_bench

        # 依次已经被占用的座位号

        self.break_point = []

    def print_bench(self):

        # 定义全0数组作为长椅

        pt_str = [0 for _ in range(self.bench_num)]

        # 按照占用的作为号,重写长椅数字

        for i, item in enumerate(self.break_point):

            # 长椅的第[作为号]赋值为第i+1个人

            pt_str[item] = i+1

        brk_num = len(self.break_point)

        if brk_num == 0:

            print("长椅为空:", pt_str)

        else:

            print("{:2d}号男人: {}".format(brk_num, pt_str))

    def next_man(self):

        # 如果是第一个人,使用随机占座

        if len(self.break_point) == 0:

            fst = random.randint(0, self.bench_num - 1)

            self.break_point.append(fst)

        else:

            brk_num = len(self.break_point)

            # 产生已经被占座的个数+1的全零数组,用于空的位置长度计数

            block_size = [0 for _ in range(brk_num + 1)]

            # 统计每个空位置的长度

            tmp = 0

            for i in range(self.bench_num):

                # 如果第i个作为没有被占用,则第tmp个数组加1

                if i not in self.break_point:

                    block_size[tmp] += 1

                # 否则,tmp加1,统计下一个间隔段的长度

                else:

                    tmp += 1

            # 找出最大长度,计算最大长度块的序号

            max_block = max(block_size)

            max_index = block_size.index(max_block)

            # 计算最大长度块在整个长椅中的分割点

            start = 0

            for i in range(max_index):

                start += block_size[i]+1

            self.break_point.append(start + max_block // 2)

 

            

c = int(input("请输入椅子的数量:"))

while True:

    m = int(input("请输入人的数量:"))

    if m <= c:

        break

    else:

        print("人数量大于椅子数量,请重新输入!")

# 引用定义的类

mab = ManAndBench(c)

# 打印长椅

mab.print_bench()

# 每次坐一个人,打印一次

for _ in range(m):

    mab.next_man()

    mab.print_bench()

我理解的“当前时间”是系统当前时间。所以你的问题描述有歧义,别人给出了别的答案。我按照我的理解写了代码。所谓的时分秒只是人的理解,在机器中储存就是一个数字,若想单独保存时分秒可以通过计算得到,而对这道题没必要画蛇添足单独保存它们。

import time

class Time:

    # 初始化当前时间

    def __init__(self):

        self.time = time.time()

    # 设置当前时间

    def SetTime(self):

        self.time = time.time()

    # 时间加1秒

    def AddOneSec(self):

        self.time += 1

    

    # 打印时间

    def PrintTime(self):

        # 格式化输出时间

        print(time.strftime('%H:%M:%S', time.localtime(self.time)))