V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xpresslink  ›  全部回复第 42 页 / 共 43 页
回复总数  848
1 ... 34  35  36  37  38  39  40  41  42  43  
2017-12-31 15:02:41 +08:00
回复了 Prodesire 创建的主题 Python pydu: Python 常用数据结构和工具库,欢迎你的加入!!!
@Prodesire
你那个算法上有个歧义的地方,set([1, 2, 1.0]) -> set([1,2])
用 dict.fromkeys 有相同的问题,因为 dict 的 key 都是调用的 objcet.__hash__()生成的,以前 python 就没有 set,都是用 dict 模拟。
其实自己写 Python 代码和维护的时候,强制缩是有好处的。
只是在交流沟通时会有一些障碍,因为很多论坛和在线编辑器会清除前导空格,
这对于 Python 代码会造成非常大的理解困难。
有了{}辅助以后即使缩进没有了也比较容易用 IDE 恢复缩进格式。
其实 Python 还可以当成 Ruby 那样用的。

__builtins__.end = None

def test(x):
if x > 0:
print("a")
else:
print("b")
end
end


def main():
test(1)
print('I can use end!')
end

main()
2017-12-29 13:50:28 +08:00
回复了 YaphetYin 创建的主题 Python Python 的逆序 slice 切片
在这里混的基本上没有小白,就你写的这东西的水平,就相当于在告诉大家母鸡会下蛋。
所以不要浪费论坛资源了。
2017-12-29 11:16:48 +08:00
回复了 Prodesire 创建的主题 Python pydu: Python 常用数据结构和工具库,欢迎你的加入!!!
@est 在 python2 里返回就是 list,python3 改成的 iterator
实际上造轮子是很难的,要解决众多版本特性差异问题。
官方说了不要把 3.6 的字典有序当成可以确保的事儿。
docs.python.org/3.6/whatsnew/3.6.html#new-dict-implementation
> The order-preserving aspect of this new implementation is considered an implementation detail and should not be relied upon (this may change in the future, but it is desired to have this new dict implementation in the language for a few releases before changing the language spec to mandate order-preserving semantics for all current and future Python implementations; this also helps preserve backwards-compatibility with older versions of the language where random iteration order is still in effect, e.g. Python 3.5).

另外就是在 key 出现哈希碰撞和字典发生扩容后 key 顺序是会改变的。
2017-12-29 10:55:17 +08:00
回复了 Prodesire 创建的主题 Python pydu: Python 常用数据结构和工具库,欢迎你的加入!!!
支持一下,我用 smallcrocodile 提交了一个更新是关于 uniq list 的。
在概浏览了一下,总体上来说代码质量没有到能实用的程度。
比如 AttrDict

def __getattr__(self, key):
try:
return self[key]
except KeyError as k:
raise AttributeError(k)

这个异常处理明显有问题会抛出异常两次。
return self[key] 如果 key 不存在直接就会抛异常了,后面又人工抛一次,体验不太好。
还不如下面的方案,
value = self.get(key, KeyError(k))
if isinstance(value, KeyError):
raise AttributeError(k)

应该有更好的方案我只是举例说一下。
另外就是是不是考虑多层字典 AttrDict 嵌套的方案。

d = AttrDict(abc={'a': 1}, d=True)
d.abc.a 怎么样?

if isinstance(value, dict):
value = AttrDict(value)
return value
2017-12-29 09:19:08 +08:00
回复了 Prodesire 创建的主题 Python pydu: Python 常用数据结构和工具库,欢迎你的加入!!!
@est
如果要保证元素出现次序稳定,应该用
>>> from collections import OrderedDict
>>> OrderedDict.fromkeys('3938475638391').keys()
2017-12-22 14:33:57 +08:00
回复了 awker 创建的主题 Python Python 中如何实现 Golang 的闭包?
@araraloren To implement a generator is must-know trick for pythoneer, the key point is 'how to solve the problem or fulfill the requirement. you are using Python, you should obey its philosophy. generator is better solution, if you just want better enclosure go lisp.
就象矛盾你学哪个?

要学就先学 web 开发吧,你把 HTTP 协议 /WEB Server/cookie/session/HTML/CSS/JS,Ajax 之类各种前端框架,都学了之后你再爬虫就非常容易了,只要两天就行了。

你要是没有前面那些基础知识就是无头苍蝇一样乱爬。
2017-12-22 12:44:52 +08:00
回复了 awker 创建的主题 Python Python 中如何实现 Golang 的闭包?
因为 Python 不需这么玩唉
Python 的哲学是不要自己造轮子。

>>> def g_factory():
i = 1
while True:
yield i
i += 1


>>> g = g_factory()
>>> next(g)
1
>>> next(g)
2
>>>

>>> from itertools import count
>>> c = count(1)
>>> next(c)
1
>>> next(c)
2
>>>

>>> from itertools import cycle
>>> c = cycle([1,2,3])
>>> next(c)
1
>>> next(c)
2
>>> next(c)
3
>>> next(c)
1
>>>
2017-12-21 15:36:29 +08:00
回复了 CatCode 创建的主题 Python 问几个关于 Django 的弱智的问题,年末赶工,感觉自己💊
1.2.两题都有人答了。
3. 说个轻量级的解决方案吧,只要你的 LINUX 稍有点基础就能做到。

比较也容易实现的方法是直接 subprocess.call('sudo /absolute/path/your.sh')
visudo 或 vi /etc/sudoers
django_user_name ALL= (root) NOPASSWD: /absolute/path/your.sh
%django_group ALL=(root) NOPASSWD
这个方式省事但有一定的安全隐患

另一个比较安全的方案是:
可以在由 django 在需执行脚本时创建一个标志文件。
然后由 root 用户创建一个定时任务,用脚本每分钟查询是不是有这个文件,有就执行脚本,删除标志文件。
# crontab -e
/1 * * * * /absolute/path/check.sh
2017-12-20 17:46:09 +08:00
回复了 qianyi0129 创建的主题 Python 写界面是不是程序员最烦的?尤其是给 Python 写界面
Python GUI 基本上还凑合吧, 用 PyQt 和 WxPython 这两个库都可以跨平台, 做出来的东西也是中规中矩的.
2017-12-19 10:12:53 +08:00
回复了 kevindu 创建的主题 Python 在 VSCode 写 Python 的疑问
@lguan 通常 I5 8G SSD 用 Pycharm 是非常流畅的。用机械硬盘启动时间确实有点长。
你要是同时维护很多个不同环境的 Py 项目你就知道为什么了。
文本编辑器再怎么配置也达不到专业 IDE 的三之一水平,项目管理,版本控制,重构,代码分析,远程调试之类差得太多。当然了大多数人可能用不到这些特性。
2017-12-19 10:00:40 +08:00
回复了 wzw 创建的主题 Python Python 如何传递参数, 在子函数还能有智能提示(Auto Complete)[PyCharm]
def main(one: dict) -> int:
"""Python 3.5+"""
one.



def main(one):
assert isinstance(one, dict)
one.
2017-12-18 18:03:47 +08:00
回复了 kevindu 创建的主题 Python 在 VSCode 写 Python 的疑问
VS Code 是个免费的通用的文本编辑器,你不能期望太高了。
放着 Pycharm 那么好用的 IDE 你不用非要用 VS Code,Sublime Text 之类受虐。
当然了,如果你只是偶尔写个小脚本当我没有说。
楼主的问题本身存在着逻辑矛盾。
你要确定这个字符串满足列表中的哪一个正则表达式,这是个限定性问题。必须完全遍历列表才能确定具体是哪一个或哪几个。如果说定义成一个函数来说,输入参数是一个字符串和一个正则列表,输出是列表中符合的元素内容或其索引位置号。

这个和列表有没有符合的元素是不同的。
这种情况就简单了,输出只有表示 是 /否 或 True/False 就可以了。
如果是遍历的方法,只要碰到第一个满足条件的元素,就可以 return True 了.
那种把表达式合并的方法只能满足这种要求。

所以楼主你自己先要把自己的需求想清楚了.
2017-12-06 22:40:17 +08:00
回复了 qile1 创建的主题 Python Python 有没有好办法批量替换 html 模板中的变量生成 html 文件
python 的很多 web 框架都有模板系统
也有很多独立的第三方模板。
比如 jinja2, mako, cheatah

其实个人推荐直接用 bottle 带的那个模板引擎。因为 bottle 就一个文件
那个模板语法完全是 Python 脚本包了一层,一看就会了。
2017-11-30 22:24:24 +08:00
回复了 a499492580 创建的主题 Python Python 数据类型
@Marmot 我觉得这个还不算什么,'this is %s' % str((1,2,3)) 多包一下也就是了。有两个经常用需求只能用 str.format 方便。
一个是多次引用,
>>> '{0}-{1}-{0}'.format(0, 1)
'0-1-0'
另一个是嵌套引用
>>> '{value:0>{width}}'.format(value='1', width=10)
'0000000001'
2017-11-22 15:37:52 +08:00
回复了 ttxxyy112233 创建的主题 Python 在 windows 下如何使用 Python 获得网卡名字
有个 WMI 包可以获取硬件信息
2017-11-22 15:23:13 +08:00
回复了 thinkingmind 创建的主题 推广 [策略英雄榜] 一起来发现最优秀的策略吧
请问楼主是捧着金饭碗来要饭的么?
1 ... 34  35  36  37  38  39  40  41  42  43  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.