Python ------- Experimento 5 Tarea 1

1. Preguntas de respuesta corta (7 preguntas en total, 120.0 puntos)

1 Ingrese el fondo superior, el fondo inferior y la altura del trapecio, diseñe la función y genere el área del trapecio.

Mi respuesta:

def S(a,b,h):

    if a>0 and b>0 and h>0:

        return (a+b)*h/2

a =int(input('请输入梯形上底a:'))

b = int(input('请输入梯形下底b:'))

h = int(input('请输入梯形下底h:'))

print('输出梯形的面积:',S(a,b,h))

Resultado de la operación:

Ingrese el trapecio superior inferior a: 2

Por favor, introduzca la parte inferior del trapecio b: 8

Por favor, introduzca el fondo trapezoidal h: 2

Área de salida del trapecio: 10.0

2 Use el método de llamada de función para encontrar 1! +2! +… + N!

Mi respuesta:

x = int(input("请输入n(不小于1):"))

def f(n):

    a = 0

    Sum = 0

    for i in range (1,n+1):

            a+=i

            Sum+=a

    print('1!+2!+...+ %d!=%d'% (i,Sum))

f(x)

Resultado de la operación:

Ingrese n (preferiblemente mayor que 2): 4

1! +2! +… + 4! = 20

3 Escriba una función, ingrese tres números como los tres lados del triángulo y calcule el área del triángulo. Fórmula de Helen: p = (x + y + z) / 2 S = sqrt (p * (px) (py) (pz))

Mi respuesta:

def S(x,y,z):

    p=(x+y+z)*0.5

    w = (p*(p-x)*(p-y)*(p-z))**0.5

    print("三角形的面积为:",w)

a = int(input("请输入三角形的边长a:"))

b = int(input("请输入三角形的边长b:"))

c = int(input("请输入三角形的边长c:"))

S(a,b,c)

Resultado de la operación:

Ingrese la longitud del triángulo a: 3

Ingrese la longitud del lado b del triángulo: 4

Ingrese la longitud del lado c del triángulo: 5

El área del triángulo es: 6

4
定义函数接收年份和月份,返回对应月份有多少天。

(20.0 puntos)
Respuesta correcta:

def get_days_in_month(year,month):

    if month == 4 or month == 6 or month == 9 or month == 11:

        return 30

    elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:

        return 31

    else:

        if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:

            return 29

        else:

            return 28



year = int(input("请输入年份:"))

month = int(input("请输入月份:"))

days = get_days_in_month(year,month)

print(year, "年", month, "月", "有",days,"天")

Mi respuesta:

def year_month(year,month):

    a = [0,31,29,31,30,31,30,31,31,30,31,30,31]

    b = [0,31,28,31,30,31,30,31,31,30,31,30,31]

    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):

        print('该月有%d天' % (a[month]))

    else:

        print('该月有%d天' % (b[month]))

y = int(input("请输入年份:"))

m = int(input("请输入月份:"))

year_month(y,m)

Resultado de la operación:

Por favor, introduzca el año: 1999

Por favor, introduzca el mes: 6

Hay 30 días en el mes

5 Escriba una función para recibir una hora (horas, minutos y segundos) y devolver el siguiente segundo de esa hora.

(20.0 puntos)
Respuesta correcta:

def get_next_second(hour,minute,second):

    hour = int(hour)

    minute = int(minute)

    second = int(second)



    second += 1

    second = second % 60

    if second == 0:

        minute += 1

    minute = minute % 60

    if minute == 0:

        hour += 1

    hour = hour % 24

    return [hour,minute,second]

time = input("请输入时间:")

time = time.split(" ")

print("下一秒的时间是:",get_next_second(time[0],time[1],time[2]))

Mi respuesta:

import datetime

def time(time):

    time=datetime.datetime.strptime(time,"%H:%M:%S")+datetime.timedelta(seconds=1)

    print("下一秒的时间是:",time.strftime("%H:%M:%S"))

a=input("请以xx:xx:xx格式输入时间:")

time(a)

Resultado de la operación:

Ingrese la hora en formato xx: xx: xx: 22:11:10

El siguiente segundo es: 22:11:11

6
编写函数,实现冒泡排序算法。

(20.0 puntos)
Respuesta correcta:

from random import randint



def bubbleSort(lst, reverse=False):

    length = len(lst)

    for i in range(0, length):

        flag = False

        for j in range(0, length-i-1):

            #比较相邻两个元素大小,并根据需要进行交换

            #默认升序排序

            exp = 'lst[j] > lst[j+1]'

            #如果reverse=True则降序排序

            if reverse:

                exp = 'lst[j] < lst[j+1]'

            if eval(exp):

                lst[j], lst[j+1] = lst[j+1], lst[j]

                #flag=True表示本次扫描发生过元素交换

                flag = True

        #如果一次扫描结束后,没有发生过元素交换,说明已经按序排列

        if not flag:

            break

lst = [randint(1, 100) for i in range(20)]

print('排序前:\n', lst)

bubbleSort(lst, True)

print('排序后:\n', lst)

Mi respuesta:

def sort(a):

    L = list(map(int, a.split()))

    for i in range(len(L)):

        for k in range(len(L)-1):

            if L[k]> L[k+1] :

                t = L[k]

                L[k] = L[k+1]

                L[k+1] = t

    return L

a = input("请输入要排序的数:")

l=sort(a)

print('排序后:', l)

Resultado de la operación:

Ingrese el número para ordenar: 9 8 2 4 3 5

Después de ordenar: [2, 3, 4, 5, 8, 9]

7 Preguntas opcionales: escriba un programa para simular un juego de adivinanzas. Cuando el programa se está ejecutando, el sistema genera un número aleatorio, y luego le pide al usuario que haga una suposición, y hace las indicaciones necesarias de acuerdo con la entrada del usuario (adivinado, demasiado grande, demasiado pequeño), si la suposición es correcta, el programa se termina antes de tiempo, y si el número se agota Todavía no adivina correctamente, indica el final del juego y da la respuesta correcta.

(20.0 puntos)
Respuesta correcta:

from random import randint

def guessNumber(maxValue=10, maxTimes=3):

# 随机生成一个整数

    value = randint(1,maxValue)

    for i in range(maxTimes):

        prompt = 'Start to GUESS:' if i==0 else 'Guess again:'

# 使用异常处理结构,防止输入不是数字的情况

        try:

            x = int(input(prompt))

        except:

            print('Must input an integer between 1 and ', maxValue)

        else:

            if x == value:

# 猜对了

                print('Congratulations!')

                break

            elif x > value:

                print('Too big')

            else:

                print('Too little')

    else:

# 次数用完还没猜对,游戏结束,提示正确答案

        print('Game over. FAIL.')

        print('The value is ', value)

guessNumber()

Mi respuesta:

import  random

def guess(value,num):

    for i in range(num):

        gue = int(input("请输入猜测的数字:"))

        if gue<value:

            print("太小了")

        elif gue>value:

            print("太大了")

        else:

            print("猜对了")

            break

    if i==num-1:

        print("游戏结束,该数字为%d"%(value))



value=random.randint(0,100)

num = int(input("请输入您要猜测的次数:"))

guess(value,num)

Resultado de la operación:

Ingrese la cantidad de veces que desea adivinar: 10

Por favor, introduzca el número adivinado: 4

Demasiado pequeño

Por favor, introduzca el número adivinado: 50

Demasiado pequeño

Por favor, introduzca el número adivinado: 80

Demasiado grande

Por favor, introduzca el número adivinado: 65

Demasiado grande

Por favor, introduzca el número adivinado: 57

Demasiado pequeño

Por favor, introduzca el número adivinado: 61

Demasiado grande

Por favor, introduzca el número adivinado: 59

Adivina bien

27 artículos originales publicados · elogiados 3 · visitas 1419

Supongo que te gusta

Origin blog.csdn.net/weixin_41860600/article/details/105484425
Recomendado
Clasificación