前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python入门(13)

Python入门(13)

作者头像
高一峰
发布2020-09-22 09:52:17
6220
发布2020-09-22 09:52:17
举报
文章被收录于专栏:高渡号外
Python入门(13/18)

第十三节 应用案例(一)

大家好!经过前一阶段的紧张学习,我们终于迎来了见证奇迹的时刻。

今天我们将要通过6个应用案例的设计编程,来领略python带给我们的惊喜,并以此巩固我们第一阶段的学习成果。

  • 编写九九乘法口诀表
  • 寻找一个符合条件的整数
  • 实现无重复数字的排列组合
  • 根据销售额计算奖金
  • 编写一个python语法的冒泡排序法
  • 根据一组数据实现按任意列排序

6个案例中,有3个数学问题,有3个程序算法问题,可以帮助我们更好地理解python的编程思想和方法。 本节课,我们先介绍前面3个案例。

案例1、编写九九乘法口诀表

需求:

1、至少你得知道啥是乘法口诀表吧。

2、请把算式和结果都列出来。

3、按乘数1~9,分9行排列显示。

分析:

1、定义两个变量作为乘法计算的两个乘数:i,取值1-9;j,取值1-9。

2、两次遍历:遍历i中1-9个数(这是第一层的循环),每取一个数,它们都将分别与j中1-9个数相乘。这是第二次遍历,也是位于第一层循环里面的第二层循环。因此,它们有一个嵌套循环的运算过程。

3、列出算式,并且分9行排列,就只是显示格式的问题了。解决办法很简单:只需要对i的遍历时,将其与j的所有数字相乘的算式和结果都排列在同一行显示即可。

PS:如何将多个算式及计算结果显示在同一行呢?方法很简单:每个算式及计算结果都可以用一个字符串表达式来呈现,对吧?那就把这些所有的一次迭代的字符串连接(相加)起来不就得到一个长字符串了吗?然后显示出来,ok!

九九乘法口诀表源代码

代码解析:

1、第一行的循环语句,定义了一个1-9的i值,不明白的回顾下for和range的概念。

2、定义y变量,用于显示i的一个取值与j中1-9相乘的算式和结果拼接成的字符串。

3、第三行,第二个循环语句定义了1-9的j值。

4、第四行,用格式化(占位符)的方法,定义一个独立算式和计算结果的字符串x。

5、运用字符串的“加法”,将x累计拼接到y中。

6、显示y字符串,注意看它的代码缩进,位于i的for循环中,因此,会分9行显示。

案例2、寻找一个符合条件的整数

需求:

设有整数i,i+100是一个完全平方数,再加168又是一个完全平方数,请找出i的值。

分析:

1、完全平方数意味着可以开平方,且结果仍然是整数。

2、要求:i+100是一个完全平方数,且i+100+168也是一个完全平方数。

寻求解决方案:

1、既然i+100是一个完全平方数,那么它开平方的结果假设为整数x,反过来,x的平方也应该等于i+100;同理,如果i+100+168开平方的结果是整数y,则y的平方也等于i+100+168。

2、直观来看,符合上述条件的i值我们猜不出来。但是,编程的好处就是可以在一个较大的数据范围内试错,来寻找符合条件的i值。

3、可以考虑在10万以内试错,先将i+100后开方,取整数,再赋值给x,再将i+268后再开方取整后,赋值给y。然后,尝试判断x和y的平方是否等于i+100和i+268,如果成立,则该i值即是正解。

寻找一个符合条件的整数的源代码

代码解析:

1、第一行通过import导入数学模块math,用于数学计算(开平方)需要。

2、定义i变量,在0-100000中取值。

3、第4、5行开方并取整后赋值给x、y。

4、第6行,条件判断。

5、如果条件成立,则终止循环(试错),输出(显示)当前i值。

案例3、实现无重复数字的排列组合

需求:请将4个数字(比如1-4)可能组成的、所有互不相同且无重复数字的排列、组合,全部列示出来。(借鉴网络案例)

分析:

1、首先要列举4个数,例如:range(1,5)。

2、计算它们的排列组合,并赋值给一个可显示的变量。

3、去除重复的数字。

实现无重复数字的排列组合源代码

代码解析:

1、首先,创建一个名为myset的空集合。(集合可以帮我们去重)

2、分别创建4个for循环,定义了4个变量i、j、k、m,它们都能从1-4中取值,分别代表4位数中的一个数。

3、请注意,代码的缩进,i的取值会与j的所有取值对应,同样j的取值会与k的所有取值对应,k的取值会与m的所有取值对应。

4、在全部获得每一轮取值后,再添加到myset中去重。

5、最后,全部迭代完毕,获取到的最终myset就是我们想要的结果。读取和显示一个集合的数据同样适用for循环迭代的方法。

小结

这一节,我们分享了三个Python应用案例,看起来,相对偏重于数学类应用,但是,实际上对于加深对python的基本语法和数据结构的理解是有好处的。还有三个应用留在下节课一起分享。

在后面的三个应用里,我们会侧重于探讨和体验数据结构和算法的实践,这将是程序员更重要的一种修炼。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档