V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  practicer  ›  全部回复第 6 页 / 共 8 页
回复总数  149
1  2  3  4  5  6  7  8  
2016-06-23 11:16:43 +08:00
回复了 NxnXgpuPSfsIT 创建的主题 Python 五分钟战胜 Python 字符编码
在自学 python 五个月后突然明白了编码问题,


抄代码抄得竟然想通了 =。=
import numpy as np

>>> np.sum([[0, 1], [0, 5]])
6
我也是新手,要理解这几个例子前先要理解递归思想,它的根本思想是递归。而你贴的教程是为了让你理解生成器,生成器已经属于 python 编程的高级主题,因此,两点累积到一起,不懵逼才怪。另外,我不赞成用它们作为初学教程的例子,除了基础好的人,零经验的人(比如我)学的时候基本都是懵逼脸。

既然根本思想是递归,暂且不看斐波拉,先找 一个简单的递归函数来理解。
要实现一个递归函数,都需要哪些条件。 So ,先看这个简单递归函数的例子:
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
手动推到 fact(5)等于多少(廖大大也有这个例子)

fact(5):
由于 5 不等于 0, fact(5) = 5 * fact(4)

那么, fact(4)是多少?
fact(4):
由于 4 不等于 0, fact(4) = 4 * fact(3)

那么, fact(3)是多少?
fact(3):
由于 3 不等于 0, fact(3) = 3 * fact(2)

那么, fact(2)是多少?
fact(2):
由于 2 不等于 0, fact(2) = 2 * fact(1)

那么, fact(1)是多少?
fact(1):
由于 1 不等于 0, fact(1) = 1 * fact(0)

那么, fact(0)是多少?
fact(0):
现在, 0 等于 0, 因此 fact(0) is 1

也就是说, fact(n)的参数为零时,递归终结。

把以上的结果整合起来,得到最终结果
fact(5) = 5* fact(4)
fact(5) = 5 * 4 * fact(3)
fact(5) = 5 * 4 * 3 * fact(2)
fact(5) = 5 * 4 * 3 * 2 * fact(1)
fact(5) = 5 * 4 * 3 * 2 * 1 * fact(0)
fact(5) = 5 * 4 * 3 * 2 * 1 * 1 = 120

经过这个例子,得到实现递归函数的两个条件:
1.必须有一个终结递归的条件,专业术语叫递归出口
2.递归函数的函数体必须要调用函数自身

对照这个例子,再来看斐波拉就没那么懵逼了,这是递归版的斐波拉例子:
def fib(n):
if n > 1: return fib(n-1) + fib(n-2)
return n

最后奉劝楼主不要着急,现在看算法书没什么用的,有些算法没有遇到实际场景是很难理解的,当遇到这种例子时,不妨先放着,等你多打一些代码,多做一些项目后再来理解,到那时候理解起来便很快了。
2016-06-19 22:14:28 +08:00
回复了 aaronzheng 创建的主题 美酒与美食 我与树莓的番外篇(制作越南春卷)
和凭祥那边的春卷一样的做法,很好吃的。
2016-06-19 20:34:05 +08:00
回复了 hellogbk 创建的主题 程序员 谁和我一样稍一看屏幕就有一种眼睛很累睁不开眼的感觉
去正规医院看眼科吧;另外显示器换成大屏幕滤蓝光显示器,分辨率调小一点为了字体显得更大,每半个小时起身休息一两分钟
2016-06-18 23:05:31 +08:00
回复了 csdreamdong 创建的主题 Python python,能用一行语句,生成 10 个随机的奇数嘛?
@congeec 原来可以这样写
2016-06-18 22:27:19 +08:00
回复了 chevalier 创建的主题 Python 讨论一个 Python 字典和列表推导式问题
我的方案是这样:
from itertools import product

l = []
for k in d:
l += list(product(k, range(1,d[k]+1)))
2016-06-18 20:25:31 +08:00
回复了 csdreamdong 创建的主题 Python python,能用一行语句,生成 10 个随机的奇数嘛?
import random import 语句也算吗?

random.sample([i for i in xrange(10000) if i % 2 == 1], 10)

random.sample(iter, k) 从一组 iter 对象里面随机选 k 个元素出来,
因此只要先先定义一个奇数列表,放进去就行了
2016-06-18 10:11:51 +08:00
回复了 Ouyangan 创建的主题 职场话题 大家怎么看待在职找工作
有一个前提条件楼主有明确说明吗:你已经在现单位提出离职了,并且现单位已经同意了,你有一个月的交接时间。
如果对方 HR 事先知道你的情况的话应该不会问截图里第一个问题,也不会对你 ‘呵呵’。
就在前天我也提出了离职,而且我下定决心转行做技术,现在领导还在挽留我,还好我不是急着跳槽,这段时间多做两个作品应付面试,心态很重要啊,楼主还是别放心上,那么多公司换一家面就行了,祝福楼主找到满意的工作。
2016-06-18 04:17:11 +08:00
回复了 omg21 创建的主题 Python 怎样转换日期格式?
re.sub(u'^(\d+) 年 (\d+) 月 (\d+) 日$', r'\1-\2-\3', str)
这种情况最好用 re 模块的替换函数了
r'\1-\2-\3'里面\1 \2 \3 分别表示 group(1), group(2), group(3),记得不能省略 r ,也不能省略前面 regex 语句的 u
@murmur 题主目前在学习阶段,经过自己构思策略后,再对学 scrapy 等框架百宜而无一害。

我提一个想法,第三步改成让爬虫递归按当前路径向下钻,设置一个递归层次的参数,限制无限递归。例如这个参数设为 3 ,那么爬 abc.com/beijing/这个路径的时候,自动抓链接抓到 abc.com/beijing/1st-layer/2nd-layer/3rd-layer
2016-06-17 14:24:28 +08:00
回复了 omg21 创建的主题 Python 怎样转换日期格式?
t = datetime.datetime.strptime(str, '%Y/%M/%d').strftime('%Y-%M-%d')

datetime.datetime.strptime() 解析时间类字符串,返回 datetime 对象
datetime.datetime.strftime()相反,将 datetime 对象转成实践类的字符串
2016-06-17 09:04:22 +08:00
回复了 buptlishantao 创建的主题 Python 请教一个爬虫的问题
@Amayadream 在这个基础上写到获取所有联系信息,并且下载图片到本地,然后通过 tesseract 转图为字符串,附代码:
https://github.com/nicky2015/practier/blob/master/spider/getContact.py
我的环境是: python2.7 + windows :

这是结果:

瑞安市主峰标准件制造有限公司[已核实]
通过认证[诚信档案]
联系人黄德海(先生)
会员 [当前离线] [加为商友] [发送信件]
邮件
电话
手机
地区浙江-温州市-瑞安市
地址浙江省瑞安市塘下镇下林工业区罗山大道 5 号
----------
Image downloads here: D:\emailPic.png
Image downloads here: D:\cellPic.png
Image downloads here: D:\phonePic.png

Starting retrieve text from images with tesseract...

image emailPic.png convertes to text: [email protected]
image phonePic.png convertes to text: 36 — 577 — 6536563o
image cellPic.png convertes to text: 13806850329

要安装一个外部程序 tesseract 和 python 的接口包 pytesseract
1.windows 平台下载地址 https://sourceforge.net/projects/tesseract-ocr-alt/
2.包安装: pip install pytesseract
2016-06-16 22:11:00 +08:00
回复了 buptlishantao 创建的主题 Python 请教一个爬虫的问题
补充下前面网友提到的 tesseract ,可以将清晰的易识别的文字图片转成字符串,成功率取决于清晰度,如果清晰度不够,要用到 pillow 库处理图片, pillow 等于 python 的 photoshop 。回到 tesseract ,是命令行工具,所以不能用 pip 安装,下载安装压缩包后添加根目录到环境变量即可使用,添加到
我和楼主差不多大,现岗位属于数据业务方面,属于开发部门,但是不需要写代码。已自学 python 七个月,目前正在办离职中,我没有参考不清楚自己是否达到转行的门槛,但是已经下定决心转行了。题主的微信多少,我们互相鼓励一起愉快的捡肥皂吧, 哦不,转行吧。
2016-06-15 18:30:08 +08:00
回复了 visonme 创建的主题 程序员 三十岁后技术人可能发展的方向,欢迎补充
我三十岁转行进入开发是作死的节奏吧
2016-06-15 08:00:29 +08:00
回复了 Greenly 创建的主题 广州 住在广州觉得幸福吗?
本人有鼻炎,只能选南方城市,来穗 8 年,后来在这里认识了老婆,已是我的第二故乡了,从此爱上了广州
2016-06-14 23:15:43 +08:00
回复了 laoni 创建的主题 程序员 晚上 10 点后有点时间。。想做点啥项目挣点奶粉钱。。。
周一到五看书,周末写代码
国内技术分享教学的精神不高,题主棒棒哒,支持楼主继续做下去!
2016-06-14 17:53:55 +08:00
回复了 honmaple 创建的主题 Python 怎样选择 uid 生成策略?
我们公司用于跟踪用户行为的"uid"是 32 位长。能不能直接用标准库里的 hashlib 呢?
import hashlib
m = hashlib.md5()
m.update('Obama')
m.hexdigest()
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   940 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.