VC中文网-VC-MFC编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 510|回复: 2
打印 上一主题 下一主题

零基础学Python需要学会的五十道习题!全会了基础基本就过了!

[复制链接]

27

主题

28

帖子

92

金币

连长

Rank: 7Rank: 7Rank: 7

积分
108

社区QQ达人新兵爱心论坛帅哥

跳转到指定楼层
楼主
发表于 2019-7-21 16:52:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小编总结了五十道适合Python初学者的练习题,非常适合练手,分享给大家!

                               
登录/注册后可看大图


题一、矩阵乘法
在开始之前先给大家点福利,小编准备了Python入门的系统教程等资料,私信小编发送我要资料就可以自动领取了!
问题描述:
编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵。
输入形式:
一行,供24个整数。以先行后列顺序输入第一个矩阵,而后输入第二个矩阵。
输出形式:
先行后列顺序输出结果矩阵,每个元素的显示宽度为8格,屏幕一行只显示矩阵的一行。
样例输入:
1 2 3 4 5 6 7 8 9 1 2 3 9 8 7 6 5 4 3 2 1 1 2 3
上面的输入,意味着要计算如下两个矩阵的乘积。
第一个矩阵 :
1 2 3 4
5 6 7 8
9 1 2 3
第二个矩阵:
9 8 7
6 5 4
3 2 1
1 2 3
样例输出】
左侧的1,2,3不是程序输出的内容。
34 32 30
110 100 90
96 87 78
知识点
  • 输入一组整数
  • 矩阵的输入
  • 矩阵乘法
  • 矩阵的输出
  • 输出的值占8格
一:输入一组整数
line = input().split()
nums = []
for s in line:
nums.append(int(s))
print(nums)
对以上代码,说明如下:
1. 第1行,input()读入整行,split()以空格为分隔符把整行分割成多段,生成数字字符串列表line。
2. 第2行,nums变量用来存储整数列表,初始化为空列表。
3. 第3,4行,for循环的作用是遍历数字字符串列表line内的每个元素s,把这个元素s转换为整数后,加到nums列表尾部。
4. 第5行,打印nums列表的值,可以帮助检查是否输入成功。
二:生成两个相乘的矩阵
步骤2是把步骤1接收到的整数分装到两个矩阵内。

                               
登录/注册后可看大图


对于以上代码,解释如下:
1. 第2行,mtx1用来记住第一个矩阵。它是3行4列的矩阵。它的初值是空列表。
2. 第3行到第7行,是一个for循环。每循环一次,得到矩阵的一行。row变量用来记住这一行。
3. 第4行,row变量初始化为空列表。
4. 第5,6行,是一个for循环。每循环一次,就往row列表中加入一个整数。循环4次,就生成了一行。
5. 第7行,把矩阵的一行加到mtx1的尾部。mtx1是以列表作为元素的列表,也即矩阵。
6. 第9行开始,生成第二个矩阵mtx2。生成第二个矩阵的做法与生成第一个矩阵的做法是类似的。不同点有两处。第一处是,矩阵的元素来自nums列表中start位置及其后的元素。第二处不同是,第二个矩阵是4行3列的。
7. print(mtx1)和print(mtx2)这两条语句用于打印两个矩阵的值,帮助检查是否正确生成了两个矩阵。不过,矩阵的元素在屏幕上没有分行显示,而是显示在同一行。
三:矩阵相乘
3行4列的矩阵乘以4行3列的矩阵,结果是3行3列的矩阵。你事先要熟悉矩阵的乘法。
以下代码的思路是,依次求出3行3列矩阵的每一个元素的值。

                               
登录/注册后可看大图


对于以上代码,说明如下:
1. result用来存储3行3列的矩阵。
2. 第2行到第7行构成一条for循环语句。一共循环3次。每循环一次,求出result矩阵的一行。
3. 第3行,row变量用来存储矩阵的一行。初值设为空列表。
4. 第4行到第6行构成一条for循环语句。这是内循环。一共循环3次。每循环一次,求出第r行(r从0开始编号)中的一个元素的值。v变量记住这个值。第6行把v变量加到row列表尾部。
5. 第7行,row加到result矩阵尾部,成为新的一行。
四:输出矩阵
输出矩阵要满足两个要求:
1. 分成3行。
2. 每一行的每个元素占8格。
代码:
for r in range(3):
print(str(result[r][0]).rjust(8) + str(result[r][1]).rjust(8) + str(result[r][2]).rjust(8))
对以上代码说明如下:
1. for循环一共执行3次。每一次,输出矩阵的一行。
2. str(result[r][0]).rjust(8)的作用是,首先把元素result[r][0]转换为字符串形式的值,然后调用字符串的rjust方法,使得字符串长度不足8格的话,左侧填充空格。假设,result[r][0]值是34,那么输出的时候,左侧将填充6个空格,形成有8个字符的字符串,即“======34”。这里,=代表的是空格。

                               
登录/注册后可看大图


完整代码:

                               
登录/注册后可看大图


题二、找对称数
问题描述
问题描述 已知10个四位数输出所有对称数及个数 n,例如1221、2332都是对称数
输入形式 10个整数,以空格分隔开
输出形式 输入的整数中的所有对称数,对称数个数
样例输入 1221 2243 2332 1435 1236 5623 4321 4356 6754 3234
样例输出 1221 2332 2
样例说明 为测试程序健壮性,输入数中可能包括3位数、5位数等
不考虑3位数、5位数的情形:

                               
登录/注册后可看大图


对上述代码,说明如下:
1. 第2到8行定义了判别一个整数是否是对称数的函数is_duicheng。函数是一组语句的集合。第19行调用了is_duicheng函数,传入要被判别的整数n。调用函数,就会执行函数包含的语句。第19行的n是实际参数,而第2行的n是形式参数,两者的名字可以不同。
2. 我们把4位数转换为字符串,然后比对第1,4位是否相同,第2,3位是否相同,都相同的话,就是对称的。
3. 第10到14行,输入10个整数。第15行,是打印这10个整数,帮助我们判断输入动作对了没有。
4. 第17行,duicheng_list变量用来存储对称的四位数。第18到20行求出所有对称的四位数。
5. 第22,23行,输出所有。这样,输出d的值后,在其尾部接一个空格,且不换行。第24行,输出对称数的个数,也就是duicheng_list的长度。它会接在前面的输出内容尾部。

                               
登录/注册后可看大图


考虑3位数、5位数的情形:
在上一节的代码基础上,增加下面所列的第4,5行,就实现了考虑3位数,5位数的情形。

                               
登录/注册后可看大图


小结
  • 判断对称数的做法是,把4位数转换为字符串,然后比对第1,4位是否相同,第2,3位是否相同,都相同的话,就是对称的。
  • 用函数来定义判断对称数的逻辑,是好做法。

                               
登录/注册后可看大图


三、求月份天数
题目描述
问题描述
编写程序输入年(year)、月(month),输出该年份该月的天数。
公历闰年的计算方法为:
年份能被4整除且不能被100整除的为闰年
或者,年份能被400整除的是闰年。
输入描述
共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。
输出描述
输出该年该月的天数。
输入示例
2017 11
输出示例
30
只考虑平年情况的解法
下一节我们会考虑闰年情况。你会发现,只要一点点改动,就能实现闰年的处理。

                               
登录/注册后可看大图


第10行,[yue - 1]是因为列表索引是从0开始的。
考虑闰年情况的解法
我们用一个函数来判断一个年份是否是闰年。

                               
登录/注册后可看大图


与只考虑平年的代码版本相比,有两点改动:
1. 定义了判闰年的函数。见1到5行。
2. 增加了15和16行。
其他行没有任何改动。
小结
这里,分两步完成任务。第一步只考虑平年,第二步加了闰年情形。这种做法值得提倡。
用列表来保存各月的天数。使得输入的月份可作为索引来得出天数。


C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
沙发
发表于 2019-9-2 21:04:33 | 只看该作者
膜拜神贴,后面的请保持队形~
C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

27

主题

28

帖子

92

金币

连长

Rank: 7Rank: 7Rank: 7

积分
108

社区QQ达人新兵爱心论坛帅哥

板凳
 楼主| 发表于 6 天前 | 只看该作者
如果你不想错过Python这么好的工具,又担心自学遇到问题无处解决,现在就可以Python的学习q u n 587-137-371可以来了解一起进步一起学习!免费分享视频资料
C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VC中文网 - 豫ICP备14012807号|小黑屋|联系客服|金币冲值|VC中文网

GMT+8, 2019-10-5 00:29 , Processed in 0.078125 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表
pk10投注技巧分享