整理了100道关于Python基础知识的练习题,记得收藏~
实例1.数字组合
题目: 有四个数字: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)
实例2.个税计算
题目: 企业发放的奖金根据利润提成。利润(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=0breakelse:bonus+=thresholds[i]*rates[i]profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)
实例3.完全平方数
题目: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析: 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
n=0
while (n+1)**2-n*n<=168:n+=1print(n+1)
----------85
思路是:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。 至于判断是否是完全平方数,最简单的方法是:平方根的值小数为0即可。 结合起来:
n=0
while (n+1)**2-n*n<=168:n+=1for 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)
实例4.这天第几天
题目: 输入某年某月某日,判断这一天是这一年的第几天?
程序分析: 特殊情况,闰年时需考虑二月多加一天:
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)
实例5.三数排序
题目: 输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析: 练练手就随便找个排序算法实现一下,偷懒就直接调函数。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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))
实例6.斐波那契数列
题目: 斐波那契数列。
程序分析: 斐波那契数列(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)
太多了放不下.................................
微信扫码,备注 “100练习题” 领取
实例79.字符串排序
题目: 字符串排序。
程序分析: 无。
l=['baaa','aaab','aaba','aaaa','abaa']
l.sort()
print(l)
实例80.猴子分桃
题目: 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
程序分析: 无。
if __name__ == '__main__':i = 0j = 1x = 0while (i < 5) :x = 4 * jfor i in range(0,5) :if(x%4 != 0) :breakelse :i += 1x = (x/4) * 5 +1j += 1print(x)for p in range(5):x=(x-1)/5*4print(x)
实例81.求未知数
题目: 809??=800??+9?? 其中??代表的两位数, 809??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
程序分析: 无。
a = 809
for i in range(10,100):b = i * aif b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:print(b,' = 800 * ', i, ' + 9 * ', i)for i in range(10,100):if 8*i>99 or 9*i<100:continueif 809*i==800*i+9*i:print(i)break
实例82.八进制转十进制
题目: 八进制转换为十进制
程序分析: 无。
n=eval('0o'+str(int(input('八进制输入:'))))
print(n)
实例83.制作奇数
题目: 求0—7所能组成的奇数个数。
程序分析:
组成1位数是4个。1,3,5,7结尾
组成2位数是7*4个。第一位不能为0
组成3位数是784个。中间随意
组成4位数是788*4个。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
if __name__ == '__main__':sum = 4s = 4for j in range(2,9):print (sum)if j <= 2:s *= 7else:s *= 8sum += sprint('sum = %d' % sum)
实例84.连接字符串
题目: 连接字符串。
程序分析: 无。
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print(delimiter.join(mylist))
实例85.整除
题目: 输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
程序分析: 999999 / 13 = 76923。
if __name__ == '__main__':zi = int(input('输入一个数字:'))n1 = 1c9 = 1m9 = 9sum = 9while n1 != 0:if sum % zi == 0:n1 = 0else:m9 *= 10sum += m9c9 += 1print ('%d 个 9 可以被 %d 整除 : %d' % (c9,zi,sum))r = sum / ziprint ('%d / %d = %d' % (sum,zi,r))
实例86.连接字符串II
题目: 两个字符串连接程序。
程序分析: 无。
a='guangtou'
b='feipang'
print(b+a)
实例87.访问类成员
题目: 回答结果(结构体变量传递)。
程序分析: 无。
if __name__ == '__main__':class student:x = 0c = 0def f(stu):stu.x = 20stu.c = 'c'a= student()a.x = 3a.c = 'a'f(a)print(a.x,a.c)
实例88.打印星号
题目: 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
程序分析: 无。
for i in range(3):print('*'*int(input('input a number: ')))
实例89.解码
题目: 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
程序分析: 无。
n=input()
n = str(n)
a=[]
for i in range(4):a.append((int(n[i])+5)%10)
a[0],a[3]=a[3],a[0]
a[1],a[2]=a[2],a[1]
print ("".join('%s' %s for s in a))
实例90.列表详解
题目: 列表使用实例。
程序分析: 无。
#list
#新建列表
testList=[10086,'中国移动',[1,2,4,5]] #访问列表长度
print (len(testList) )
#到列表结尾
print (testList[1:])
#向列表添加元素
testList.append('i\'m new here!') print (len(testList) )
print (testList[-1] )
#弹出列表的最后一个元素
print (testList.pop(1) )
print (len(testList) )
print (testList )
#list comprehension
#后面有介绍,暂时掠过
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
print (matrix )
print (matrix[1] )
col2 = [row[1] for row in matrix]#get a column from a matrix
print (col2 )
col2even = [row[1] for row in matrix if row[1] % 2 == 0]#filter odd item
print (col2even)
实例91.time模块
题目: 时间函数举例1。
程序分析: 无。
if __name__ == '__main__':import timeprint (time.ctime(time.time()))print (time.asctime(time.localtime(time.time())))print (time.asctime(time.gmtime(time.time())))
实例92.time模块II
题目: 时间函数举例2。
程序分析: 如何浪费时间。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
if __name__ == '__main__':import timestart = time.time()for i in range(3000):print(i)end = time.time()print (end - start)
实例93.time模块III
题目: 时间函数举例3。
程序分析: 如何浪费时间。
if __name__ == '__main__':import timestart = time.clock()for i in range(100):print(i)end = time.clock()print('different is %6.3f' % (end - start))
实例94.time模块IV
题目: 时间函数举例4。
程序分析: 如何浪费时间。
if __name__ == '__main__':import timeimport randomplay_it = input('do you want to play it.(\'y\' or \'n\')')while play_it == 'y':c = input('input a character:\n')i = random.randint(0,2**32) % 100print ('please input number you guess:\n')start = time.clock()a = time.time()guess = int(input('input your guess:\n'))while guess != i:if guess > i:print('please input a little smaller')guess = int(input('input your guess:\n'))else:print('please input a little bigger')guess = int(input('input your guess:\n'))end = time.clock()b = time.time()var = (end - start) / 18.2print (var)# print 'It took you %6.3 seconds' % time.difftime(b,a))if var < 15:print ('you are very clever!')elif var < 25:print ('you are normal!')else:print ('you are stupid!')print ('Congradulations')print ('The number you guess is %d' % i)play_it = input('do you want to play it.')
实例95.转换时间格式
题目: 字符串日期转换为易读的日期格式。
程序分析: 看看就得了,dateutil是个第三方库。
from dateutil import parser
dt = parser.parse("Aug 28 2015 12:00AM")
print (dt)
实例96.计算复读次数
题目: 计算字符串中子串出现的次数。
程序分析: 无。
s1='xuebixuebixuebixuebixuebixuebixuebixue'
s2='xuebi'
print(s1.count(s2))
实例97.磁盘写入
题目: 从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
程序分析: 无。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
if __name__ == '__main__':from sys import stdoutfilename = input('输入文件名:\n')fp = open(filename,"w")ch = input('输入字符串:\n')while ch != '#':fp.write(ch)stdout.write(ch)ch = input('')fp.close()
实例98.磁盘写入II
题目: 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
程序分析: 无。
if __name__ == '__main__':fp = open('test.txt','w')string = input('please input a string:\n')string = string.upper()fp.write(string)fp = open('test.txt','r')print (fp.read())fp.close()
实例99.磁盘读写
题目: 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
程序分析: 无。
if __name__ == '__main__':import stringfp = open('test1.txt')a = fp.read()fp.close()fp = open('test2.txt')b = fp.read()fp.close()fp = open('test3.txt','w')l = list(a + b)l.sort()s = ''s = s.join(l)fp.write(s)fp.close()
实例100.列表转字典
题目: 列表转换为字典。
程序分析: 无。
i = ['a', 'b']
l = [1, 2]
print (dict(zip(i,l)))
100练习题:https://docs.qq.com/doc/DU0xwT0hjaHliR1pY
相关文章:
整理了100道关于Python基础知识的练习题,记得收藏~
实例1.数字组合 题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。 total0 for i in range(1,5):for j in range(…...
OSG三维渲染引擎编程学习之七十七:“第七章:OSG场景图形交互” 之 “7.8 场景交互”
目录 第七章 OSG场景图形交互 7.8 场景交互 7.8.1 osgGA库 7.8.2 事件消息处理 7.8.3 程序抓图示例...
797.差分
输入一个长度为 n的整数序列。 接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n和 m。 第二行包含 n个整数,表示整数序列。 …...
为什么说要慎用BeanUtils,因为性能真的拉跨
1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是:有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患(后面例子…...
【项目设计】高并发内存池(六)[细节优化+测试]
🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…...
同模块设置不同应用主题方案
有时候公司内部会有不同应用但是有部分模块功能一样,只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的APP。如果APP主题不一致,该如果解决。 方案: 在不同应用的config.gradle 下面根据不同应用定义不同的a…...
centos7 安装 hyperf
PHP > 7.4 Swoole PHP 扩展 > 4.5,并关闭了 Short Name OpenSSL PHP 扩展 JSON PHP 扩展 PDO PHP 扩展 Redis PHP 扩展 Protobuf PHP 扩展 composer create-project hyperf/hyperf-skeleton 推荐安装项 全部选n php.ini [swoole] extens…...
RZ/G2UL核心板-40℃低温启动测试
1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计,一路千兆网口、一路CAN-bus、 3路TTL UART、LCD、WiFi、CSI 摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。HD-G2UL-CORE系列工业级核…...
PyQt5可视化 7 饼图和柱状图实操案例 ①Qt项目的创建
目录 一、新建Qt项目 二、添加组件和布局 三、添加资源 1. 新建资源文件 2. 添加图标资源 四、frameHead 1. toolBtnGenData 2. toolBtnCounting 3. comboTheme 4. comboAnimation 5. Horizontal Spacer 6. toolBtnQuit 7. 设置toolBtnQuit的功能 8. frameHead的…...
0104路径搜索和单点路径-无向图-数据结构和算法(Java)
文章目录2 单点路径2.1 API2.2 算法实现后记2 单点路径 单点路径。给定一幅图和一个起点s,回答“从s到给定的目的顶点v是否存在一条路径?如果有,找出这条路径。”等类似问题。 2.1 API 单点路径问题在图的处理邻域中十分重要。根据标准设计…...
Maxscale读写分离实施文档
Maxscale介绍 MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换。 使用Maxscale无需对业务代码进行修改,其自带的读写分离模块,能够解析SQL语句&…...
websocket实现一个简单聊天框
websoket在客户端的使用 事件:open/message/error/close 方法:send/close var socket new WebSocket(url)// 服务连接成功时触发 socket.addEventListener(open, function() {console.log("连接成功了") })// 主动给websocket发消息 socket…...
Docker-安装应用
一、安装Tomcat 注意:新版Tomcat安装之后启动访问会出现404 修改:删除原有的webapps目录,修改webapps.dist为webapps 免修改版本:billygoo/tomcat8-jdk8 二、安装Mysql 1、安装 拉取镜像 docker pull mysql:5.7 运行镜像…...
Web3中的营销:如何在2023年获得优势
Mar. 2022, Daniel在过去的一年里,让人们对你的Web3项目或协议感兴趣已经变得越来越有挑战性。许多曾经充满希望的项目因为各种不同的原因,都在熊市中倒下了。然而,那些迄今为止幸存下来的项目都有一个共同点:强大的社区。Web3营销…...
Java中==和equals区别
文章目录Java中和equals区别1. Integer中和equals的问题1.1 Integer类型且不是通过new创建的比较1.2 手动new Integer()创建的比较1.3 Integer和int比较2. String中和equals的问题3. DemoJava中和equals区别 equals是方法,是运算符: 如果比较的对象是基…...
计算机科学导论笔记(三)
五、计算机组成 计算机组成部件可以分为三大类(子系统):中央处理单元(CPU)、主存储器和输入/输出子系统。 5.1 中央处理单元(CPU) 中央处理单元用于数据的运算,分为算术逻辑单元&a…...
Stream——数字类型的字符串排序
文章目录前言什么是数字类型的字符串一个简单的坑demo拯救坑代码对象集合中的数字类型排序(有坑)对象集合中的数字类型排序 解决扩展将数字类型字符串数组转换为Integer集合总结前言 想到给数据进行排序,一开始头脑中想到的就是sorted(),本篇文章重点说…...
.NET 8 预览版 1 发布!
.NET 8 是一个长期支持(LTS) 版本。这篇文章涵盖了推动增强功能优先级排序和选择开发的主要主题和目标。.NET 8 预览版和发布候选版本将每月交付一次。像往常一样,最终版本将在 11 月的某个时候在 .NET Conf 上发布。 .NET 版本包括产品、库、运行时和工具…...
WebGIS学习路线
7年经验的webgis码农在此文跟大家分享一些一路走来的所见所闻。希望能帮助刚刚跨入这个门槛的你。 入门之前我相信你已经搞清楚了以下几个问题: 1.什么是webgis? 2.webgis能够解决什么样的问题? 3.为什么你要学习webgis? 如果还没考虑清楚也没关系,可能你看完这篇文章…...
【独家】华为OD机试 - 停车场最大距离(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
