百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python100道练习题pdf版,(附答案)

off999 2024-11-20 20:05 25 浏览 0 评论

目录

  • 实例001:数字组合
  • 实例002:“个税计算”
  • 实例003:完全平方数
  • 实例004:这天第几天
  • 实例005:三数排序
  • 实例006:斐波那契数列
  • 实例007:copy
  • 实例008:九九乘法表
  • 实例009:暂停一秒输出
  • 实例010:给人看的时间
  • 实例011:养兔子
  • 实例012:100到200的素数
  • 实例013:所有水仙花数
  • 实例014:分解质因数
  • 实例015:分数归档
  • 实例016:输出日期
  • 实例017:字符串构成
  • 实例018:复读机相加
  • 实例019:完数
  • 实例020:高空抛物
  • 实例021:猴子偷桃
  • 实例022:比赛对手
  • 实例023:画菱形
  • 实例024:斐波那契数列II
  • 实例025:阶乘求和
  • 实例026:递归求阶乘
  • 实例027:递归输出
  • 实例028:递归求等差数列
  • 实例029:反向输出
  • 实例030:回文数
  • 实例031:字母识词
  • 实例032:反向输出II
  • 实例033:列表转字符串
  • 实例034:调用函数
  • 实例035:设置输出颜色
  • 实例036:算素数
  • 实例037:排序
  • 实例038:矩阵对角线之和
  • 实例039:有序列表插入元素
  • 实例040:逆序列表
  • 实例041:类的方法与变量
  • 实例042:变量作用域
  • 实例043:作用域、类的方法与变量
  • 实例044:矩阵相加
  • 实例045:求和
  • 实例046:打破循环
  • 实例047:函数交换变量
  • 实例048:数字比大小
  • 实例049:lambda
  • 实例050:随机数
  • 实例051:按位与
  • 实例052:按位或
  • 实例053:按位异或
  • 实例054:位取反、位移动
  • 实例055:按位取反
  • 实例056:画圈
  • 实例057:画线
  • 实例058:画矩形
  • 实例059:画图(丑)
  • 实例060:字符串长度
  • 实例061:杨辉三角
  • 实例062:查找字符串
  • 实例063:画椭圆
  • 实例064:画椭圆、矩形
  • 实例065:画组合图形
  • 实例066:三数排序
  • 实例067:交换位置
  • 实例068:旋转数列
  • 实例069:报数
  • 实例070:字符串长度II
  • 实例071:输入和输出
  • 实例072:创建链表
  • 实例073:反向输出链表
  • 实例074:列表排序、连接
  • 实例075:不知所云
  • 实例076:做函数
  • 实例077:遍历列表
  • 实例078:字典
  • 实例079:字符串排序
  • 实例080:猴子分桃
  • 实例081:求未知数
  • 实例082:八进制转十进制
  • 实例083:制作奇数
  • 实例084:连接字符串
  • 实例085:整除
  • 实例086:连接字符串II
  • 实例087:访问类成员
  • 实例088:打印星号
  • 实例089:解码
  • 实例090:列表详解
  • 实例091:time模块
  • 实例092:time模块II
  • 实例093:time模块III
  • 实例094:time模块IV
  • 实例095:转换时间格式
  • 实例096:计算复读次数
  • 实例097:磁盘写入
  • 实例098:磁盘写入II
  • 实例099:磁盘读写
  • 实例100:列表转字典


由于篇幅问题,需完整版后台扣“1”即可


实例001:数字组合

题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?


程序分析 遍历全部可能,把有重复的剃掉。


total=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if ((i!=j)and(j!=k)and(k!=i)):
                print(i,j,k)
                total+=1
print(total)


简便方法 用itertools中的permutations即可。


import itertools
sum2=0
a=[1,2,3,4]
for i in itertools.permutations(a,3):
    print(i)
    sum2+=1
print(sum2)



实例002:“个税计算”

题目 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?


程序分析 分区间计算即可。


profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):
    if profit<=thresholds[i]:
        bonus+=profit*rates[i]
        profit=0
        break
    else:
        bonus+=thresholds[i]*rates[i]
        profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)



实例003:完全平方数

题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?


程序分析 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:


n=0
while (n+1)**2-n*n<=168:
    n+=1


print(n+1)


思路是:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。

至于判断是否是完全平方数,最简单的方法是:平方根的值小数为0即可。

结合起来:


n=0
while (n+1)**2-n*n<=168:
    n+=1


for i in range((n+1)**2):
    if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5):
        print(i-100)



实例004:这天第几天

题目 输入某年某月某日,判断这一天是这一年的第几天?


程序分析 特殊情况,闰年时需考虑二月多加一天:


def isLeapYear(y):
    return (y%400==0 or (y%4==0 and y%100!=0))
DofM=[0,31,28,31,30,31,30,31,31,30,31,30]
res=0
year=int(input('Year:'))
month=int(input('Month:'))
day=int(input('day:'))
if isLeapYear(year):
    DofM[2]+=1
for i in range(month):
    res+=DofM[i]
print(res+day)



实例005:三数排序

题目 输入三个整数x,y,z,请把这三个数由小到大输出。


程序分析 练练手就随便找个排序算法实现一下,偷懒就直接调函数。


raw=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw.append(x)


for i in range(len(raw)):
    for j in range(i,len(raw)):
        if raw[i]>raw[j]:
            raw[i],raw[j]=raw[j],raw[i]
print(raw)




raw2=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw2.append(x)
print(sorted(raw2))



实例006:斐波那契数列

题目 斐波那契数列。


程序分析 斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就递归实现,图性能就用循环。


递归实现


def Fib(n):
    return 1 if n<=2 else Fib(n-1)+Fib(n-2)
print(Fib(int(input())))


朴素实现
target=int(input())
res=0
a,b=1,1
for i in range(target-1):
    a,b=b,a+b
print(a)



实例007:copy

题目 将一个列表的数据复制到另一个列表中。


程序分析 使用列表[:],拿不准可以调用copy模块。


import copy
a = [1,2,3,4,['a','b']]


b = a          # 赋值
c = a[:]        # 浅拷贝
d = copy.copy(a)    # 浅拷贝
e = copy.deepcopy(a)  # 深拷贝


a.append(5)
a[4].append('c')


print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)


============ RESTART: F:\PyWorkspace\Python100\100examples\007.py ============

a= [1, 2, 3, 4, ['a', 'b', 'c'], 5]

b= [1, 2, 3, 4, ['a', 'b', 'c'], 5]

c= [1, 2, 3, 4, ['a', 'b', 'c']]

d= [1, 2, 3, 4, ['a', 'b', 'c']]

e= [1, 2, 3, 4, ['a', 'b']]



实例008:九九乘法表

题目 输出 9*9 乘法口诀表。


程序分析 分行与列考虑,共9行9列,i控制行,j控制列。


for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2ld '%(i,j,i*j),end='')
    print()



实例009:暂停一秒输出

题目 暂停一秒输出。


程序分析 使用 time 模块的 sleep() 函数。


import time
for i in range(4):
    print(str(int(time.time()))[-2:])
    time.sleep(1)



实例010:给人看的时间

题目 暂停一秒输出,并格式化当前时间。


程序分析 同009.


import time


for i in range(4):
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
    time.sleep(1)

由于篇幅问题,需完整版后台扣“1”即可

最后祝大家早日学有所成!!

相关推荐

Kubernetes 核心概念全景图:Pod、Node、Cluster、Control Plane 等

想真正读懂Kubernetes的底层运作,你必须理解它的“权力架构”。Pod是什么?Node是什么?ControlPlane又是做什么的?它们之间有什么关系?怎么协同工作?本篇带你构建一个...

Helm 实战:用 Helm 部署一个 Nginx 应用

这一篇,我们将动手实战:用Helm从零部署一个Nginx应用,并掌握HelmChart的结构和参数化技巧。一、准备环境在开始之前,你需要确保环境中具备以下工具:已部署的Kubernet...

从零开始:如何在 Linux 上搭建 Nginx + Node.js 高性能 Web 服务

在现代互联网服务架构中,Nginx+Node.js已成为轻量级、高性能网站的首选组合。本文将带你从零开始,一步步搭建一个高并发、高可用的Web服务平台,让新手也能轻松掌握生产级部署思路。一、...

NetBox 最新版 4.4.1 完整安装指南

NetBox最新版4.4.1完整安装指南(修正版)by大牛蛙1.系统准备#关闭SELinux和防火墙(仅测试环境)systemctldisable--nowfirewalldse...

Termux 安装 linux 宝塔面板,搭建 Nginx+PHP+Mysql web 网站环境

Termux安装linux宝塔面板,搭建Nginx+PHP+Mysqlweb服务环境,解决启动故障奶妈级教程1.到宝塔面板官网:https://www.bt.cn/new/download...

OpenEuler系统安装Nginx安装配置_openwrt安装nginx

NginxWEB安装时可以指定很多的模块,默认需要安装Rewrite模块,也即是需要系统有PCRE库,安装Pcre支持Rewrite功能。如下为安装NginxWEB服务器方法:源码的路径,而不是编...

多级缓存架构实战:从OpenResty到Redis,打造毫秒级响应系统

在传统的Web架构中,当用户发起请求时,应用通常会直接查询数据库。这种模式在低并发场景下尚可工作,但当流量激增时,数据库很容易成为性能瓶颈。多级缓存通过在数据路径的不同层级设置缓存,可以显著降低数据库...

如何使用 Nginx 缓存提高网站性能 ?

快速加载的站点提供了更好的用户体验并且可以拥有更高的搜索引擎排名。通过Nginx缓存提高你的网站性能是一个有效的方法。Nginx是一个流行的开源web服务器,也可以作为web服务器反向代...

如何构建企业级Docker Registry Server

很多人问我,虚拟机镜像和docker镜像的区别是什么?其实区别非常明显,我们可以通过阅读Dockerfile文件就可以知道这个镜像都做了哪些操作,能提供什么服务;但通过虚拟机镜像,你能一眼看出来虚拟机...

如何解决局域网SSL证书问题?使用mkcert证书生成工具轻松搞定

“局域网里弹出‘不安全’红锁,老板就在身后盯着演示,那一刻只想原地消失。”别笑,九成前端都经历过。自签证书被Chrome标红,客户以为网站被黑,其实只是缺一张被信任的证。mkcert把这事从半小时缩到...

Docker 安全与权限控制:别让你的容器变成“漏洞盒子”

在享受容器带来的轻量与灵活的同时,我们也必须面对一个现实问题:安全隐患。容器并不是天然安全,错误配置甚至可能让攻击者“越狱”入侵主机!本篇将带你从多个层面强化Docker的安全防护,构建真正可放心...

Kubernetes生产级管理指南(2025版)

在云原生技术持续演进的2025年,Kubernetes已成为企业数字化转型的核心引擎。然而,生产环境中的集群管理仍面临基础设施配置、安全漏洞、运维复杂度攀升等挑战。本文将结合最新行业实践,从基础设施即...

云原生工程师日常使用最多的工具和100条高频命令

在云原生时代,工程师不仅要熟悉容器化、编排和服务网格,还要掌握大量工具和命令来进行日常运维与开发。本文将从工具篇和命令篇两个角度,详细介绍云原生工程师每天都会用到的核心技能。一、云原生工程师常...

用 Jenkins 实现自动化 CI/CD_jenkins api自动执行

场景设定(可替换为你的技术栈)语言:Node.js(示例简单,任何语言思路一致)制品:Docker镜像(推送到DockerHub/Harbor)运行环境:Kubernetes(staging...

5款好用开源云笔记虚拟主机部署项目推荐

在个人数据管理与协同办公场景中,开源云笔记项目凭借可自主部署、数据可控的优势,成为众多用户的首选。以下推荐5款适配虚拟主机部署、功能完善的开源项目,附核心特性与部署要点,助力快速搭建专属云笔记系统。...

取消回复欢迎 发表评论: