Python 小白,向各位大佬请教个逗号问题

2019-01-29 11:36:17 +08:00
 holy_sin

leetcode 279. Perfect Squares

class Solution(object):
    _dp = [0]
    def numSquares(self, n):
        dp = self._dp
        while len(dp) <= n:
            dp += min(dp[-i*i] for i in range(1, int(len(dp)**0.5+1))) + 1,
        return dp[n]

这是 StefanPochmann 给的 python 版本动态规划答案,不知道 while 循环中的“,”是什么语法,如果去掉会直接运行失败。

4731 次点击
所在节点    Python
29 条回复
ijustdo
2019-01-30 08:50:45 +08:00
没毛病
araraloren
2019-01-30 09:00:16 +08:00
@mmdsun 因为`括号`是一个正常的语法啊,这在其他编程语言中处理基本是一样的
qcts33
2019-01-30 09:11:37 +08:00
@mmdsun 括号本身是强制提升运算优先级啊,加逗号才是 tuple
vipppppp
2019-01-30 09:19:51 +08:00
@mmdsun
兄弟你是不是很少用 if 语句啊。。。
括号在 if 语句经常使用啊,第一是提升运算符优先级,第二是 if 换行啊,当你写了一个很长的 if 语句,PEP8 建议使用()隐形换行。。。
vipppppp
2019-01-30 09:24:45 +08:00
上次手抖,写接口返回给前端的时候
写了句
data = list(my_dict.values()),
真的是血炸,找了很久的 bug....
xpresslink
2019-01-30 11:22:21 +08:00
@mmdsun 兄弟你肯定没有认真看书,或都看了一些很二的教程。元组定义就是用逗号分隔的一组元素,跟括号根本没有关系好吧。只是因为大多情况下在表达式中需要用括号做定界符。a=1, a=1,2,3 a 就是元组了,根本不用括号。
mmdsun
2019-01-30 13:27:27 +08:00
@xpresslink 不好意思了。没学过 py 只是好奇语法。现在明白了。感谢回复。
yim7
2019-01-30 14:03:24 +08:00
我之前写代码不小心加上逗号,debug 找了一会,主要是在修改同事代码,语句有点长没注意到,一直觉得这是语法的坑。用这个特性的该打
WayToGo
2019-01-31 17:18:41 +08:00
为了省点眼神,还是写成 tuple(a)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX