点击上方蓝色文字关注我们吧
谷歌排名第一的编程语言时什么?毫无疑问:肯定是 Python。
也难怪,作为大数据时代和人工智能时代的必备语言,Python 的优点太多了,语言简洁、易学、开发效率高、可移植性强......
另外,更牛的地方是目前最热门的几大技术方向:人工智能、数据分析、爬虫、前后端开发、大数据、数据库运维等等,几乎都在用它。
毫不夸张的说,学好 Python,你几乎可以在任何一个技术方向找到你满意的工作!
而现在很多学校都要求小学生要掌握Python语法来进行解题。
比如苏州实验小学五年级小学生已经开始学Python,并要求学生通过Python来进行解题。
来源:苏州实验小学五年级的题目
来源:苏州实验小学
现在,小喵给你出个题,大家小脑袋转起来吧!
假设你有无限数量的邮票,面值分别为6角,7角,8角,请问你最大的不可支付邮资是多少元?
小喵掰着手指头和脚趾头算了下,答案是:1.7元
那么问题来了?为啥是1.7呢,于是小编用python解决了这个小学数学题。
一、排列组合
假设6、7、8角各有50张(50张够了),先计算出所有的可能组合
二、排序、去重
先对组合就行排序,从小到大的顺序,排队站好,这里用到sort()函数(要是你用冒泡排序,那你就out啦!)
sort函数只是对list序列排序,并没有返回值
排序完成后,接下来就是去掉重复的数据
三、取出不能生成的数字
不在上面组合里面的数字就是不能生成的数字了,于是我们可以先取出来。
取出来后的数据放到r队列里。
从r队列取最后一个数据,就是答案啦。
四、参考代码
# coding:utf-8
a = 6
b = 7
c = 8
t = 50 # 票的张数
s = [] # 排列组合全部放到这里
# 生成的组合
for i in range(t+1):
s1 = a*i
s.append(s1)
for j in range(t+1):
s2 = a*i+b*j
s.append(s2)
for k in range(t+1):
s3 = a*i + b*j + c*k
s.append(s3)
# 排序
s.sort()
# 去掉重复
news = []
for i in s:
if i not in news:
news.append(i)
print("组合生成的最大数%s"%news[-1])
# 提取不在列表列表中的数字
r = []
for i in range(6*t):
if i in news:
pass
else:
r.append(i)
print("组合不能生成的数字%s"%r)
print("不能生成的最大数字为%s"%r[-1])
如果当年小学时候就能学会python,妈妈就不用担心我的学习了!
Python暑期特训营招募学员中开班时间:7月22日至8月22日上课时间:周三晚上6:30-8:00,周六早上9:00-10:30招生对象:五年级-八年级学生暑期优惠价:¥2599上课地点:苏州园区星湖街999号D幢报名时间:即日起苏州工业园区编程猫猿码星球 SIP Code Link
地址:苏州工业园区星湖街999号D幢一楼
电话:0512-6724-2245,17037759651,19951243083
2D图形化编程
3D图形化编程
RPGMaker
Unity
Arduino
Python
C++
APP Inventor