python编程问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python编程问题?相关的知识,希望对你有一定的参考价值。
我有4个1.25,5个2.5,7个3,一共16个数字;将这些数字分别求和,一共有多少种组合,分别求和是多少。
比如:
1.25+2.5+3=
1.25+1.25+1.25+1.25=
1.25+2.5+3+3=
.........
等等,所有组合一遍。
使用python如何写程序?
除了这3个数都选0个外共有239种组合,代码(缩进见图):
c=0
for i in range(5):
for j in range(6):
for k in range(8):
r='1.25+'*i+'2.5+'*j+'3+'*k
if r:
c+=1
print(r[:-1],'=',sum((1.25*i,2.5*j,3*k)),sep='')
print(f'共c种组合')
参考技术A # 定义一个函数,用于计算组合数def combination(nums):
# 定义一个列表,用于存储所有的组合
combinations = []
# 遍历每一个数字
for num in nums:
# 如果combinations为空,则直接将该数字加入combinations中
if len(combinations) == 0:
combinations.append([num])
else:
# 如果combinations不为空,则遍历combinations中的每一个组合,将该数字加入其中
for i in range(len(combinations)):
combinations.append(combinations[i] + [num])
# 返回所有的组合
return combinations
# 定义一个列表,用于存储所有的数字
nums = [1.25, 2.5, 3, 1.25, 1.25, 1.25, 1.25, 2.5, 3, 3]
# 调用函数,计算组合数
combinations = combination(nums)
# 打印结果
print("一共有%d种组合:" % len(combinations))
for combination in combinations:
print("%s=%f" % (str(combination), sum(combination))) 参考技术B python是一种优雅的语言,它可以用一种简洁到出乎意料的方式来实现,以下就以这个问题为例看看python风格的实现:
# 导入itertools模块
import itertools
# 定义数字列表
nums = [1.25, 2.5, 3]
# 定义数字个数列表
counts = [4, 5, 7]
# 使用itertools.product函数计算所有可能的组合
combinations = itertools.product(*[nums for _ in counts])
# 计算所有组合的和
sums = [sum(c) for c in combinations]
# 输出结果
print(f'一共有len(sums)种组合,分别求和是:sums') 参考技术C 如果想用Python写这个程序,你可以使用`itertools.combinations()` 函数,根据我们要求的求和组合来做。
首先,将1.25,2.5,3三个定义赋值给一个列表:
```python
nums = [1.25, 2.5, 3]
```
然后,我们使用 `itertools.combinations()` 函数:
```python
from itertools import combinations
comb = combinations (nums, 3) # 3表示每次抽取的数字
```
最后,我们用一个 `for` 循环遍历 `comb`:
```python
for x in list(comb):
print (sum(x))
```
运行程序后会得到求和结果:
5.75
5.0
7.5
....... 参考技术D 除了这3个数都选0个外共有239种组合,代码(缩进见图):
c=0
for i in range(5):
for j in range(6):
for k in range(8):
r='1.25+'*i+'2.5+'*j+'3+'*k
if r:
c+=1
print(r[:-1],'=',sum((1.25*i,2.5*j,3*k)),sep='')
print(f'共c种组合')
Python编程自学入门需要注的问题是什么?
自学编程需要注意的问题
很多人都推荐小白第一门语言选Python,因为语法简单。这句话只说了一半,Python确实容易上手,对初学者的门槛很低。但我发现,对于高手而言编程语言不是重点,例如很多人学完了Python的语法,觉得确实简单,但是转头去用Python标准库的时候,却发现自己连文档都看不懂。标准库提供了Python和其它系统功能的接口,最终实现了Python和系统之间的互动。读标准库需要系统知识,比如操作系统,数据库,进程和线程,socket编程,网络协议等等,这些对于编程小白来才构成很高的门槛,但是只有学会这些,才能真正发挥出Python的威力来。
这也是我觉得自己的经历对小白是有价值的一个原因。因为设计一个动态的网页是一个很不错的练手Project。建立网页(Web App)会逼迫你了解从你在浏览器里键入地址按下回车到网页显示在浏览器的过程中,浏览器,网络,服务器都干了些什么。具体到技术上面,你不得不去学习前端的HTML,CSS和JavaScript,后端的脚本,数据库,操作系统等。也就是说,这个过程能够促使你去主动学习上面提到的系统知识,如果你再做另外一个项目,你就不会像现在这样无从下手,而有能力去进行一些技术性的探讨,所以我认为这是一个非常好的练手项目。
2.1 一定要空出时间补充理论知识
很多人会强调learn by doing,边做项目边学习,这也是我自己采用的方式。在这种方式中,你不断犯错,改正……学习效率非常高。但是,很多人走了极端,最后的结果就是不注意理论知识的学习。你会发现自己Google的能力越来越高,但是真实的编程能力并没有得到提升。如果有这种情况,你需要反思一下。
一种可能是你太过于依赖各种成熟的框架,结果编程就变成了用「胶水」去粘合不同的框架完成需求。就好比你的Web App用了SQLAlchemy,虽然自己不太懂SQL,但是网站跑的也还不错。这时候如果数据库出现了问题,那你就只能跪了。
另外一种可能是你完全沉浸在做项目中,忽略了学习理论知识。做项目虽然充满困难,但回报是强烈的成就感,很容易沉浸其中。我觉得这是极其错误的。首先半路出家的程序员都没有经过系统的学习,没有形成自己的知识体系,如果你不懂数据结构,算法复杂度,操作系统这些理论,那么你能达到的高度就极其有限。所以,在每天做项目的同时,一定要保证抽出一定的时间,恶补理论知识。这部分的书单在豆瓣和知乎上都有很多总结,可以自行搜索。
2.2 不要太纠结于无意义的问题
比如什么框架好,XX语言比XX语言好啦这种问题。前期确定了练手项目,就去专心积累代码量,积累基础知识。那些你现在还看不懂的炫酷技术你慢慢也就能明白是怎么回事了,反而没有基础,再炫酷的框架对你而言都是天书。
2.3 学会发问
学习python时,好问题是建立在你自己已经实践或者思考的基础上问出来的,这是对自己的负责,也是对别人的尊重。不要一遇到困难就喜欢直接上网搜索:「这个问题是怎么回事啊?」,「我不明白你能不能帮我看看……」。
2.4 学好英语
文章转载自Python教程网:www.99kao.com 转载注明出处
需要Python学习资料可加vx :lw1586677919
以上是关于python编程问题?的主要内容,如果未能解决你的问题,请参考以下文章