V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cc7756789  ›  全部回复第 8 页 / 共 9 页
回复总数  177
1  2  3  4  5  6  7  8  9  
2015-06-28 15:20:09 +08:00
回复了 wudaown 创建的主题 Python python 爬虫求助
你的类构造的很有问题,导致完全没法分析,有些属性应该放进__init__
怀疑是你的代码把网页进行了刷新,导致你获取的验证码和当前网页不一致,而且你该贴出来你是怎么调用类的, 如果你不会使用类的话那么老老实实用函数的好,这是我登陆豆瓣的例子,也有验证码,https://github.com/ZhangHang-z/dung_beetle/blob/master/login_douban1.py
@cc7756789 补充:还有一种去重复的方法:

>>> {}.fromkeys([1,1,1,1,3])
{1: None, 3: None}
>>> {}.fromkeys([1,1,1,1,3]).keys()
[1, 3]
这是列表生成式( List Comprehension ),用于简化多行 if 结构的语句,生产一个list,然后去掉重复的元素,把他写成常规语句就是:

```python
mylist = [1,1,2,2,3,4]
tolist = []
for n in mylist:
if n not in tolist:
tolist.append(n)
```

还有一个可用 set 去重复元素的更简单方法。

```python
>>> a = set([1,1,2,2,3,4])
>>> a
set([1, 2, 3, 4])
>>> list(a)
[1, 2, 3, 4]
```

Python还有一个生成器(Generator),其就等于函数使用yield进行return,只需要把 `[]` 括号变成 `()` 括号:

```python
>>> a = (x for x in range(10))
>>> a
<generator object <genexpr> at 0x7f7c1ebfd050>
>>> for x in a:
... print x
...
0
1
2
3
4
5
6
7
8
9
>>>

#和下面相同
>>> def a():
... for x in range(10):
... yield x
>>> a()
<generator object a at 0x7f7c1ebfde10>
>>> for x in a():
... print x
...
0
1
2
3
4
5
6
7
8
9

```


这样不会立即生成list,而是生成一个generator对象,需要用的时候再进行取值,可以节省大量内存。
你也可以利用 generator 拥有的 `next()` 方法取值。(注意:如果你取出,值就被弹出不存在了,除非你再次启动Python解释器)

```python
>>> a = (x for x in range(10))
>>> a.next()
0
>>> a.next()
1
>>> a.next()
2

```


附:一直不知道为什么要叫List Comprehension,Comprehension意为 **理解;包含**,知道的也可以告诉我原因啊。
2015-06-26 20:40:03 +08:00
回复了 lin 创建的主题 大学 你们对复读怎么看?
只想说一句:**在哪里努力不是努力!**
论坛是否有验证码?另外用request要简单很多,也容易判断哪里可能出错。
2015-06-23 16:36:40 +08:00
回复了 ri0day 创建的主题 Python python exception 处理的疑问
@ri0day 用markdown语法
2015-06-23 14:52:49 +08:00
回复了 cc7756789 创建的主题 Python 关于面向对象中的一些概念和执行过程混乱
@aec4d http://stackoverflow.com/questions/20744277/sqlalchemy-create-all-does-not-create-tables 我是参考了这个例子的,难道这个答案是错误的?
2015-06-23 13:30:38 +08:00
回复了 cc7756789 创建的主题 Python 关于面向对象中的一些概念和执行过程混乱
@aec4d 第二个例子是出错的,其余两个都是执行正确的
2015-06-23 12:24:37 +08:00
回复了 cc7756789 创建的主题 Python 关于面向对象中的一些概念和执行过程混乱
@Septembers 但为什么实例化可以在下面进行,不会出现找不到对象的情况?
2015-06-23 10:44:43 +08:00
回复了 cc7756789 创建的主题 Python 一个 flask-SQLAlchemy 的问题
@Shared 但我不知道为什么只导入db, 也可以创建表。创建表的类只是继承了db.Model,并没有任何调用,为什么可以进行db.create_all()把这两个类定义的表给创建?我对Python的执行方式不了解,是因为导入过程中会扫描文件,然后探测到继承db.Model的类,所以才能执行到这个类?
@risker QQ群171266388
2015-06-10 10:46:10 +08:00
回复了 cc7756789 创建的主题 Python flask 使用 markdown 无效
@imlonghao 谢谢,果然是这个坑
$ pip list 列出当前已安装的第三方库

$ pip freeze > requirements.txt 把当前已安装的第三方库的名字重定向到一个文件中

$ pip install -r requirements.txt 一键安装此文件中的所有库
2015-05-31 09:29:22 +08:00
回复了 cc7756789 创建的主题 Python 如何覆盖上一次的打印结果
搞定但是先问题无法解决,就是倒计时输出会在最左边输出,如何把它禁锢在指定的区域呢?
```
def interface_show(**kwargs):
print ' '*5, kwargs['title'], kwargs['artist'], kwargs['rate'], time_remain(kwargs['minutes'])

def time_remain(mins):
count = 0
while (count < mins):
count += 1
n = mins - count
time.sleep(1)
sys.stdout.write("%d \r" % n,)
sys.stdout.flush()
if not n:
return 'completed'
```


最后输出这样的信息,最右边的是总时长,最左边的是倒计时效果。
108 <旅立ち(「はるかな旅」ストリングス·ヴァージョン)> 吉田潔 ★★★★ 205
2015-05-30 20:46:02 +08:00
回复了 easonleo 创建的主题 问与答 感觉有些应届生心里装着两个百度、两个 360
钱决定一切
2015-05-30 08:31:00 +08:00
回复了 xionghengheng 创建的主题 Python 有个关于 python 发邮件的问题
用Python调用Linux命令 os.system subprocess.Popen
2015-05-29 20:30:57 +08:00
回复了 g8287694 创建的主题 职场话题 辞职了 因为不喜欢喝酒 是不是有点任性?
你就说有酒后乱码症,然后喝了之后几天假转昏昏沉沉像神经病一样写的代码也全是bug,他们下次就不会要求你喝了。
2015-05-29 20:29:16 +08:00
回复了 jacob 创建的主题 问与答 如何克服屎代码恐惧症
重要有成长的过程吧,一般人又不能和天才相比,即使天才也不是一步就能写出赏心悦目的代码的。
2015-05-29 15:50:37 +08:00
回复了 xueweihan 创建的主题 Python 求助, ubuntu 下 pip 安装 virtualenv 报错
安装出错先找有没有 Permission denied:字样,有就肯定是没加sudo
钢铁侠好好优化下速度应该能追上,然后抱着导弹飞到敌窝来一个狗吃屎。
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2472 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 04:21 · PVG 12:21 · LAX 20:21 · JFK 23:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.