python语言程序设计_梁勇—第五章练习题重点题目答案

2023-11-06

1、(统计正数和负数的个数后计算这些数的平均值)编写程序来读入不指定个数的整数,然后决定已经读取的整数中有多少个正数和负数并计算这些输入值

def calculate_avg():
    sum = 0
    positive = 0
    negative = 0
    while True:
        num = eval(input("Enter an integer,the input ends if it is 0:"))
        if num != 0:
            if num > 0:
                positive += 1
            elif num < 0:
                negative += 1
        sum += num
        avg = sum /(positive + negative)
        if num == 0:
            print("The number of positive is %d"%positive)
            print("The number of positive is %d"%negative)
            print("The total is %d"%(positive+negative))
            print("The average is %f"%avg)
            break

2、(累加) 产生两个在 1 到 15 之间的随机数的加法问题,显示回到正确的次数和时间

import random
import time

def random_add():
    correctCount = 0
    count = 0
    number_of_questions = 5
    startTime = time.time()

    while count < number_of_questions:# 控制答题次数
        number1 = random.randint(1,15)
        number2 = random.randint(1,15)

        if number1 < number2:
            number1,number2 = number2,number1

            answer = eval(input("What is "+str(number1)+"+"+str(number2)+"?"))
            if number1+number2 == answer:
                print("you are correct!")
                correctCount += 1
            else:
                print("your answer is wrong.\n",number1,"+",
                      number2,"is",number1+number2)
            count += 1

        endTime = time.time()
        testTime = int(endTime -startTime)
        print("Correct count is", correctCount,"out of ",
              number_of_questions,"\nTest time is ",testTime,"seconds")

3、重量转换表格

def weight_transfer_excel():
    print("     重量转换表")
    print("_____________________")
    print("|  KG   |   pounds  |")
    for i in range(1,10):
        print("|    ",i," |",format(i*2.2,'.1f'))
    for i in range(10,100):
        print("|   ",i," |",format(i*2.2,'.1f'))
    for i in range(100,200):
        print("|  ",i,"| ",format(i*2.2,'.1f'))

4、计算未来学费,假设大学今年的学费是10000美元,且以每年5%增长。编写程序计算十年之后的学费以及从现在开始到十年后大学四年的总学费

def calculate_tuition():
    tuition = 10000
    rate = 0.05
    year = 10
    sum = 0
    for i in range(year):
        tuition = tuition * (1+rate)
        sum += tuition
    print("十年后的学费为:%f 十年总的学费为:%f"%(tuition,sum))

5、(找出可被5和6同时整数的数) 编写程序编写找出100和1000之间所有被5和6同时整除的数,每行显示10个数,这些数被一个空行隔开

def find_the_num():
    count = 0
    for i in range(100,1001):
        if i % 5 == 0 and i % 6==0:
            count += 1
            if count % 10 != 0:
                print(i,end='   ')
            else:
                print(i,end="\n")

6、(计算最大公约数) 找出两个整数n1、n2的最大公约数的解决方案,首先,找出二者最小的数d,然后依次递减的顺序去找二者的公因子,第一个数就是二者的最大公约数

def greatest_common_divisor():
    n1 = eval(input("Enter the first integer:"))
    n2 = eval(input("Enter the second integer:"))
    d = min(n1,n2)
    for i in range(d,1,-1): # range()函数步长问题:https://www.cnblogs.com/Lambda721/p/7776600.html
        if n1 % i == 0 and n2 % i == 0:
            print("二者的最大公约数为:%d"%i)
            break
    else:
        print("二者无公约数")

7、(显示ASCII字符表)编写程序显示ASCII字符表!到~的字符。每行显示十个字符,字符被一个空格隔开

def print_ASSII():
    count = 0
    for i in range(33,127):
        count += 1
        if count % 10 == 0:
            print(chr(i),end='\n')
        else:
            print(chr(i),end=' ')

8、(找出一个整数的所有因子) 编写程序读取一个整数,然后显示它所有的最小因子,也称为素因子

# 判断素数,二因子分解
def isprime(num):
    for i in range(2,num):
        if num % i == 0:
            return False
    else:
        return True

#获取所有约数
def get_factor(num):
    return [x for x in range(1,num) if num % x == 0]


def primefactor(num):
    if isprime(num):
        return [1,num]
    factors = get_factor(num)
    List = []
    consult = num
    for i in range(1,len(factors)):
        if consult == 1:
            break
        while True:
            if consult % factors[i] != 0:
                break
            if isprime(factors[i]):
                consult /= factors[i]
                List.append(factors[i])
            else:
                List.append(factors[i])
                break

    return List

9、(显示一个金字塔) 编写程序提示用户输入一个在1到15之间的整数,然后显示一个金字塔

import math
def Pyramid():
    n = eval(input("请输入金字塔层数:"))
    for i in range(n):
        m = 0
    for i in range(n):
        a = n - i
        m += pow(10, i)
        for j in range(a):
            print(' ', end='')
        print(pow(m, 2))

10、(利用循环显示四种模式) 使用嵌套循环在四个独立的程序中显示下面的四种模式

def formA():
    for i in range(1,8):
        for j in range(1,i):
            print(j,end="  ")
        print()

def formB():
    for i in range(7,1,-1):
        for j in range(1,i):
            print(j,end="  ")
        print()


def formC():
    for i in range(1,8):
        for j in range(8-i):
            print("  ",end='')
        for j in range(1,i):
            print(j,end=' ')
        print("\n")

def formD():
    for i in range(7,1,-1):
        for j in range(7-i):
            print("  ",end='')
        for j in range(1,i):
            print(j,end=" ")
        print()

11、(显示闰年)编写程序显示21世纪里所有的闰年,每行显示10个闰年,这些年被一个空格隔开

def leapYear():
    count = 0
    for year in range(2000,2101):
        if (year % 4 == 0 and year % 100 != 0)or(year % 400 == 0):
            print(year,end='  ')
            count += 1
            if count % 10 == 0:
                print('',end="\n")

12、(显示每个月的第一天) 编写程序提示用户输入年份以及该年的第一天是星期几,然后在控制台上显示该年每个月的第一天是星期几

import calendar as cal

def calculate_the_week(year,m,q):
    week_day = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
    if m == 1 or m == 2:
        m += 12
        year -= 1
    k = year % 100
    j = (year / 100)//1
    h = ((q + (26*(m + 1)/10)//1) + k + ((k/4)//1) + ((j/ 4) //1+5 *j)) % 7
    print("Day of the day is %s"%week_day[int(h)])

def Displays_the_first_day():
    FORMAT = "%d-%d-%d\t"
    year = eval(input("Enter year :(e.g.,2008):"))
    for m in range(1, 13):
        d = cal.monthrange(year, m)
        print(FORMAT % (year, m, 1))
        calculate_the_week(year, m, 1)
        print(FORMAT % (year, m, d[1]))
        calculate_the_week(year, m, d[1])
        print("",end="\n")

13、(完全数)如果一个正整数等于除了它本身之外所有正因子的和,那么这个数称为完全数

def get_factor(num):
    return [x for x in range(1,num) if num % x == 0]

def perfect_num():
    for i in range(1,10001):
        list1 = get_factor(i)
        sum = 0
        for j in range(len(list1)):
            sum += list1[j]
        if i == sum:
            print("完全数为:",i)

推荐各位小可爱们一首炒鸡好听的歌,疗愈
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python语言程序设计_梁勇—第五章练习题重点题目答案 的相关文章

随机推荐

  • go语言 FindWindow

    Go 语言中的 FindWindow 函数是用于查找窗口句柄的函数 它是由 Windows API 提供的 在 Go 中通过 syscall 包来调用 用法示例 packagemain import fmt syscall unsafe v
  • 有趣的数据结构算法5——利用循环链表解决Josephus问题

    有趣的数据结构算法5 利用循环链表解决Josephus问题 题目复述 解题思路 实现代码 GITHUB下载连接 本次教程主要讲述如何利用循环链表解决Josephus问题 题目复述 据说著名犹太历史学家 Josephus有过以下的故事 在罗马
  • Selenium碰到的异常记录

    Java版本的Selenium异常记录 1 没有找到类的异常 NoClassDefFoundError 异常如下 Exception in thread main java lang NoClassDefFoundError com goo
  • 记录Android开发中SELINUX权限问题

    记录Android开发中SELINUX权限和用户权限问题 在安卓开发中 当linux内核中配置了SELINUX权限管理 访问硬件相关的设备文件 led tty等 时 如果没有对文件和访问文件的程序设置selinux的权限 就有可能报如下错误
  • 编写java程序151条建议读书笔记(20)

    建议139 大胆采用开源工具 MVC框架有Structs 也有Spring MVC WebWorker IoC容器有Spring 也有Coolgle Guice ORM有Hibernate MyBatis 日志有经典的log4j 崭新的lo
  • Java—RPC:远程过程调用(1)

    Java RPC 远程过程调用 1 在我们学习RPC的过程中 首先我们先认识一下项目结构在发展中干的变化 一 项目结构变化 1 单体结构 单体结构又叫单一项目 在我们所认识的传统项目基本上都是单一项目 j可是在互联网逐步发展的过程中 逐渐的
  • 卡通渲染技巧(三)——崩坏3卡通渲染实践

    系列链接 卡通渲染技巧 一 漫反射部分 卡通渲染技巧 二 高光部分 描边 卡通渲染技巧 三 崩坏3卡通渲染实践 耳听为虚眼见为实 不实际看一下你永远不知道技术分享里吹了多少牛 其实是没有实际应用到游戏里 前排赞美 SnapDragon Pr
  • 【手写一个RPC框架】simpleRPC-04

    目录 前言 实现 项目创建 配置依赖 common service server client 文件结构 运行 本项目所有代码可见 https github com weiyu zeng SimpleRPC 前言 之前谈到 网络传输使用BI
  • 音频——WAV 格式详解

    文章目录 WAV 文件格式解析 概述 块解析 RIFF chunk fmt chunk data chunk 示例分析 代码解析 WAV 文件格式解析 概述 wav 文件支持多种不同的比特率 采样率 多声道音频 WAV 文件格式是 Micr
  • 考研经验

    1 初试 考研初试准备的开始时间主要有两批 第一批是从3月份开始准备 第二批是从7月份开始准备 我属于前面那一批 接下来按照考研科目的顺序来讲一下我在考研初试准备的一些经验 政治 100分 题型 选择题 单选 多选 分析题 科目 马原 史纲
  • 修改Nuget默认包存放位置

    nuget默认的全局包下载地址一般为 C Users UserName nuget packages 项目多了之后 nuget下载的包就回慢慢的变多 导致c盘被大量占用 这时候我们想要将nuget的默认的包存放位置放在其其他的目录下面 可以
  • 边缘计算与智能服务

    随着信息化的不断发展 人们对互联网提出了更高的生活需求 5G 人工智能 物联网等新兴技术应运而生 万物互联已经成为一种新的发展趋势 网络技术不再只停留于原来的数字层面 在物质生活中可以提供更加智能化的服务帮助 而与物之间的密切交流带来的不仅
  • 三菱PLC N:N 通讯

    简介 三菱NN通讯是采用485通讯方式 只能用于COM1通讯口 其通讯是程序中设定好固定的模式以及站点号 参照软元件通讯表就可以由主站直接访问软元件寄存器来获取从站数据 要是从站之间进行数据交互 则必须从站先将数据发送到主站 再由主站发送至
  • Typora改变字体颜色

    方法一 下载AutoHotkey并创建快捷键的方法 推荐 第一步 在官网 https www autohotkey com 下载 AutoHotkey并傻瓜式安装 安装在任意盘符下均可 第二步 在安装目录下创建AutoHotKey ahk文
  • Proxmox虚拟环境(PVE)简介

    Proxmox虚拟环境 简称PVE 是用于操作来宾操作系统的基于Debian Linux和KVM的虚拟化平台 Proxmox免费提供 可以通过制造商 维也纳的Proxmox Server Solutions GmbH 购买商业支持 Prox
  • Eclipse查看java源代码

    第一步 点击Window下的Preferences 第二步 选择Java下的Installed JRES 鼠标点击右边的jre1 8 0 点击Edit 第三步 打开以rt jar结尾的jar包 双击Source attachment 如果是
  • python21天打卡Day12--for循环,列表推导式-构建列表

    for循环 a range从左开始 不包括右 如下输出1 100 for i in range 1 101 a append i print a 列表推导式 b i for i in range 1 101 print b D 学习 Pyt
  • 【神经网络搜索】ENAS:Efficient Neural Architecture Search

    GiantPandaCV导语 本文介绍的是Efficient Neural Architecture Search方法 主要是为了解决之前NAS中无法完成权重重用的问题 首次提出了参数共享Parameter Sharing的方法来训练网络
  • 浅谈web架构之架构设计

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前言 题目有点大 所以不可能说得非常具体 笔者也不能驾驭全部 前面介绍过网站发展过程中架构的演化过程 本文主要针对网站架构各个方面的建设进行简单介绍 架构模式 先来说说模式
  • python语言程序设计_梁勇—第五章练习题重点题目答案

    1 统计正数和负数的个数后计算这些数的平均值 编写程序来读入不指定个数的整数 然后决定已经读取的整数中有多少个正数和负数并计算这些输入值 def calculate avg sum 0 positive 0 negative 0 while