由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 看C码工写Python真是捉急
相关主题
大家用python 调用C++是如何搞的谁知道这个嵌套的Python if 是啥意思?
Python unicode问题python 有什么好书可以读一读?
老年C 程序员求建议Python:请问如何把list变成structured array。
感觉用python的人,属于程序员中的文艺青年那类的BT实战
python要把@当作矩阵乘法算符求助:Wavelet 的 library (转载)
Java is backPython小问题
学python的一点小感觉哈python注释问题。
阅读scala中How to check if an object is null in python?
相关话题的讨论汇总
话题: python话题: nonascii话题: ascii话题: string话题: swap
进入Programming版参与讨论
1 (共1页)
d********g
发帖数: 10550
1
下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
误/不推荐做法:
def strip_non_ascii(self, string):
''' Returns the string without non ASCII characters'''
s = ""
nonascii = 0
for c in string:
if ord(c) < 128:
s += c
else:
nonascii = 1
return (s, nonascii)
for fname in files:
(file, nonascii) = self.strip_non_ascii(fname)
if file == 'something':
continue
if nonascii == 1:
filepath = path + '/' + file + '*'
else:
filepath = path + '/' + file
这种流水code,就是要求用C写也不至于这么直白吧……
c*********e
发帖数: 16335
2
python和c
让我想起了vb和c#

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

c****e
发帖数: 1453
3
as long as it works, why bother. "c style" is not expressive but usually
quite robust.
n******t
发帖数: 4406
4
说句直白的,风格其实不能当饭吃。
程序员最重要的不是style,是知道自己在干什么。

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

n***e
发帖数: 723
5
恩。。。
那个你能放个比较正确的写法么?

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

c********l
发帖数: 8138
6
re,没看出有什么需要改进 的

【在 n***e 的大作中提到】
: 恩。。。
: 那个你能放个比较正确的写法么?

c*********n
发帖数: 182
7
def StripNonAscii(self, non_ascii_string):
striped_str = ''.join([c for c in non_ascii_string if ord(c) < 128])
return (striped_str, (striped_str == non_ascii_string))
这多干净
c********l
发帖数: 8138
8
强,长姿丝了

【在 c*********n 的大作中提到】
: def StripNonAscii(self, non_ascii_string):
: striped_str = ''.join([c for c in non_ascii_string if ord(c) < 128])
: return (striped_str, (striped_str == non_ascii_string))
: 这多干净

g*****g
发帖数: 34805
9
不懂python,但regex不就一行的事情吗,大多数语言都支持。
String.replaceAll("[^\x00-\x7F]", "")
c*********e
发帖数: 16335
10
嘿嘿。。。

【在 g*****g 的大作中提到】
: 不懂python,但regex不就一行的事情吗,大多数语言都支持。
: String.replaceAll("[^\x00-\x7F]", "")

相关主题
Java is back谁知道这个嵌套的Python if 是啥意思?
学python的一点小感觉哈python 有什么好书可以读一读?
阅读scala中Python:请问如何把list变成structured array。
进入Programming版参与讨论
d********g
发帖数: 10550
11
这你就有所不知了,不同语言的特性决定了性能
Python里的字符串都是不可变的,不能重新assign,字面上的重新赋值实际上都是新开
一个对象
所以你看一个循环里 s += 'xxx'这种写法会生成多少个废对象?

【在 c****e 的大作中提到】
: as long as it works, why bother. "c style" is not expressive but usually
: quite robust.

d********g
发帖数: 10550
12
你这个和我给他review的基本一样,不过这个case比较字符串大小比全等操作更优化
s = ''.join([c for c in orig_str if ord(c) < 128])
nonascii = len(orig_str) != len(s)
return (s, nonascii)

【在 c*********n 的大作中提到】
: def StripNonAscii(self, non_ascii_string):
: striped_str = ''.join([c for c in non_ascii_string if ord(c) < 128])
: return (striped_str, (striped_str == non_ascii_string))
: 这多干净

d********g
发帖数: 10550
13
那代码里除了风格,别的常识错误太多了
第一file是内置函数,string是内置库。是可以强制赋值成别的对象,但是这种用法你
不捉急吗?那个组本来是做硬件的,Python用来写API,要不是我看到了顺手把关一下
,这种质量的code ship之后产品就卖出来了,还得WSN去折腾报告bug
第二个不用T/F而用0/1,这太明显的C霸王硬上弓了,捉急呀
第三字符串直接循环相加,虽然有些实现比如CPython是有优化的,但不是所有。这要
是循环十万遍,那可是要生成十万零一个字符串对象的(不说垃圾收集)
第四path join不用os.path.join(),直接字符串相加,这……就算100%肯定是在Linux
上运行,也不能这么山寨吧。我太为他捉急了
第五写Python的确实看不惯啰啰嗦嗦的写法。filepath那个就算这种错误的字符串操作
,也可以简化成这样:
filepath = '{0}/{1}{2}'.format(path, ascii_fname, '*' if nonascii else '')
或者:
filepath = '{0}/{1}{2}'.format(path, ascii_fname, nonascii and '*' or '')
前一个是标准Pythonic写法,后一个是带点C遗风的Pythonic写法
用Java打个简单的比方吧,这种写法好比在Java里模拟C的指针操作,自己多加一层
layer。可以是可以,就是捉急,你要是看到公司有C码工在Java里这样乱搞难道不吐血?
短短的几段代码,能同时犯这么多错误,也不容易

【在 g*****g 的大作中提到】
: 不懂python,但regex不就一行的事情吗,大多数语言都支持。
: String.replaceAll("[^\x00-\x7F]", "")

d********g
发帖数: 10550
14
更省的办法是避免多次ord()调用
import string
ASCII_LETTERS = string.ascii_letters
s = ''.join([c for c in orig_str if c in ASCII_LETTERS])
不过意义不是很大

【在 d********g 的大作中提到】
: 你这个和我给他review的基本一样,不过这个case比较字符串大小比全等操作更优化
: s = ''.join([c for c in orig_str if ord(c) < 128])
: nonascii = len(orig_str) != len(s)
: return (s, nonascii)

d********g
发帖数: 10550
15
这C码工明显不知道自己在干什么,要知道的话style绝不会C风格,Python的风格关乎
效率。别的不说,就是C来写,那个判断nonascii的循环,用得着多次赋值1么?逻辑是
没错,我看着都蛋疼,就算小学生读了谭浩强的大毒草来写C,也不至于写成这样吧

【在 n******t 的大作中提到】
: 说句直白的,风格其实不能当饭吃。
: 程序员最重要的不是style,是知道自己在干什么。

c****e
发帖数: 1453
16
I know immutable. But it's python's complier's job to optimize this.
javascript used to be slow to s+=, now it's even faster than stringbuidler
because people like to write in that way.
I agree the way he wrote is not every FP. where|join can make code more
expressive. But my point is even his code is verbose, as long as it works it
could be fine. I don't know your concrete story, but don't laugh at
novince. He might just need a little bit practice and learn a few
conventions.
Back to the post, let's not start perf discussion on python.

【在 d********g 的大作中提到】
: 这你就有所不知了,不同语言的特性决定了性能
: Python里的字符串都是不可变的,不能重新assign,字面上的重新赋值实际上都是新开
: 一个对象
: 所以你看一个循环里 s += 'xxx'这种写法会生成多少个废对象?

f******y
发帖数: 2971
17
让python马工去写C,估计根本写不出来了。

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

d********g
发帖数: 10550
18
你这样说也不对,如果啥都是compiler's job,怎么不搞一个自动写bit manipulation
的,智能把垃圾代码给搞高效一点,对吧?

it

【在 c****e 的大作中提到】
: I know immutable. But it's python's complier's job to optimize this.
: javascript used to be slow to s+=, now it's even faster than stringbuidler
: because people like to write in that way.
: I agree the way he wrote is not every FP. where|join can make code more
: expressive. But my point is even his code is verbose, as long as it works it
: could be fine. I don't know your concrete story, but don't laugh at
: novince. He might just need a little bit practice and learn a few
: conventions.
: Back to the post, let's not start perf discussion on python.

d********g
发帖数: 10550
19
算了吧,你自己先得学艺精。我都提到了其中一个答案是“带点C遗风的Pythonic写法
”:
filepath = '{0}/{1}{2}'.format(path, ascii_fname, nonascii and '*' or '')
这个写法:
nonascii and '*' or ''
看看和你自己问的C问题是不是有点类似?你理解了吗?
发信人: finalguy (o(∩∩)o), 信区: Programming
标 题: 神奇的逻辑关系
发信站: BBS 未名空间站 (Sat May 18 21:41:01 2013, 美东)
今天读一段code,不是很明白一个地方。具体就是
if (A && B || C) {
}
这样的逻辑写法我从来不用,看了也不是很懂。求高手指点,究竟在A,B,C那几个为
真的情况下会进入这个block?

【在 f******y 的大作中提到】
: 让python马工去写C,估计根本写不出来了。
m*******l
发帖数: 12782
20
别互相贬低了,要我说, 我知道看到数字就头疼呢,例如你这个128...

【在 d********g 的大作中提到】
: 算了吧,你自己先得学艺精。我都提到了其中一个答案是“带点C遗风的Pythonic写法
: ”:
: filepath = '{0}/{1}{2}'.format(path, ascii_fname, nonascii and '*' or '')
: 这个写法:
: nonascii and '*' or ''
: 看看和你自己问的C问题是不是有点类似?你理解了吗?
: 发信人: finalguy (o(∩∩)o), 信区: Programming
: 标 题: 神奇的逻辑关系
: 发信站: BBS 未名空间站 (Sat May 18 21:41:01 2013, 美东)
: 今天读一段code,不是很明白一个地方。具体就是

相关主题
BT实战python注释问题。
求助:Wavelet 的 library (转载)How to check if an object is null in python?
Python小问题怎样运行一个 Python script?
进入Programming版参与讨论
w*********l
发帖数: 1337
21
不觉得。你这个每次+=都生成一个新的object不是一个显然的决定, 你是把internal
implementation拿来反过来指导用法。C没关系,反正什么都透明,学的OS跟
architecture已经基本上给你sense怎么写比较快。

manipulation

【在 d********g 的大作中提到】
: 你这样说也不对,如果啥都是compiler's job,怎么不搞一个自动写bit manipulation
: 的,智能把垃圾代码给搞高效一点,对吧?
:
: it

f******y
发帖数: 2971
22
谁这么写程序的,只能说他C写的也不怎么样。

【在 d********g 的大作中提到】
: 算了吧,你自己先得学艺精。我都提到了其中一个答案是“带点C遗风的Pythonic写法
: ”:
: filepath = '{0}/{1}{2}'.format(path, ascii_fname, nonascii and '*' or '')
: 这个写法:
: nonascii and '*' or ''
: 看看和你自己问的C问题是不是有点类似?你理解了吗?
: 发信人: finalguy (o(∩∩)o), 信区: Programming
: 标 题: 神奇的逻辑关系
: 发信站: BBS 未名空间站 (Sat May 18 21:41:01 2013, 美东)
: 今天读一段code,不是很明白一个地方。具体就是

i***r
发帖数: 1035
23
great post!
thanks
d********u
发帖数: 5383
24
"风格关乎效率"的语言是没生命力的。说难听点儿,就是玩具。

【在 d********g 的大作中提到】
: 这C码工明显不知道自己在干什么,要知道的话style绝不会C风格,Python的风格关乎
: 效率。别的不说,就是C来写,那个判断nonascii的循环,用得着多次赋值1么?逻辑是
: 没错,我看着都蛋疼,就算小学生读了谭浩强的大毒草来写C,也不至于写成这样吧

d********g
发帖数: 10550
25
A && B || C都不理解,你怎么学的C啊

【在 f******y 的大作中提到】
: 谁这么写程序的,只能说他C写的也不怎么样。
p**o
发帖数: 3409
26
>>> from string import ascii_letters
>>> from operator import contains
>>> from functools import partial
>>> strip_nonascii = partial(filter,partial(contains,ascii_letters))
>>> strip_nonascii('a1b2c3d4e5')
'abcde'
这样写够"pythonic"不?lol
你管人家写成怎样,能work就行
p**o
发帖数: 3409
27
''.join(c for c in orig_str if c in ASCII_LETTERS)

【在 d********g 的大作中提到】
: 更省的办法是避免多次ord()调用
: import string
: ASCII_LETTERS = string.ascii_letters
: s = ''.join([c for c in orig_str if c in ASCII_LETTERS])
: 不过意义不是很大

j******g
发帖数: 436
28
你为什么要吐血,和你有什么关系吗?这代码在他们的场景下有问题吗?你觉得这是代
码的问题,还是资源的问题?

Linux

【在 d********g 的大作中提到】
: 那代码里除了风格,别的常识错误太多了
: 第一file是内置函数,string是内置库。是可以强制赋值成别的对象,但是这种用法你
: 不捉急吗?那个组本来是做硬件的,Python用来写API,要不是我看到了顺手把关一下
: ,这种质量的code ship之后产品就卖出来了,还得WSN去折腾报告bug
: 第二个不用T/F而用0/1,这太明显的C霸王硬上弓了,捉急呀
: 第三字符串直接循环相加,虽然有些实现比如CPython是有优化的,但不是所有。这要
: 是循环十万遍,那可是要生成十万零一个字符串对象的(不说垃圾收集)
: 第四path join不用os.path.join(),直接字符串相加,这……就算100%肯定是在Linux
: 上运行,也不能这么山寨吧。我太为他捉急了
: 第五写Python的确实看不惯啰啰嗦嗦的写法。filepath那个就算这种错误的字符串操作

c*******y
发帖数: 1630
29
看那个python speed faq就行了,说这么多干嘛啊。
有些只是他不知道python的实现,不知道效率问题,给他发个link就行了。
http://wiki.python.org/moin/PythonSpeed/PerformanceTips
风格?效率高了,是不是pythonic,谁care啊。

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

i***r
发帖数: 1035
30
加个括号不是更readable么

【在 d********g 的大作中提到】
: A && B || C都不理解,你怎么学的C啊
相关主题
Any Python book recommend: Entry level?Python unicode问题
谁能说说Perl, Python, Tcl各自的优缺点?主要应用场合?老年C 程序员求建议
大家用python 调用C++是如何搞的感觉用python的人,属于程序员中的文艺青年那类的
进入Programming版参与讨论
d********g
发帖数: 10550
31
用internal implementation来指导用法,C难道还能笑别人?随便一个简单例子:swap
指针地址来swap值,这比直接swap值要高效吧?

internal

【在 w*********l 的大作中提到】
: 不觉得。你这个每次+=都生成一个新的object不是一个显然的决定, 你是把internal
: implementation拿来反过来指导用法。C没关系,反正什么都透明,学的OS跟
: architecture已经基本上给你sense怎么写比较快。
:
: manipulation

d********g
发帖数: 10550
32
你这不就是in操作吗,一个道理

【在 p**o 的大作中提到】
: >>> from string import ascii_letters
: >>> from operator import contains
: >>> from functools import partial
: >>> strip_nonascii = partial(filter,partial(contains,ascii_letters))
: >>> strip_nonascii('a1b2c3d4e5')
: 'abcde'
: 这样写够"pythonic"不?lol
: 你管人家写成怎样,能work就行

d********g
发帖数: 10550
33
对,用generator会更省

【在 p**o 的大作中提到】
: ''.join(c for c in orig_str if c in ASCII_LETTERS)
j******g
发帖数: 436
34
为什么?swap值可以用register实现,swap地址,对应数据必须在内存里面。

swap

【在 d********g 的大作中提到】
: 用internal implementation来指导用法,C难道还能笑别人?随便一个简单例子:swap
: 指针地址来swap值,这比直接swap值要高效吧?
:
: internal

d********g
发帖数: 10550
35
Python的swap还可以这样呢:
a, b = b, a
这和C的指针swap一样,才是internal implementation指导用法的典型例子

【在 j******g 的大作中提到】
: 为什么?swap值可以用register实现,swap地址,对应数据必须在内存里面。
:
: swap

N********n
发帖数: 8363
36

这都啥馊主意啊,你咋知道只有俩指针IN THE PLAY?如果还第三个指针指
向其中任何一值你这SWAP指针岂不是漏了。您这两下子还点评C编程,LOL.

【在 d********g 的大作中提到】
: 用internal implementation来指导用法,C难道还能笑别人?随便一个简单例子:swap
: 指针地址来swap值,这比直接swap值要高效吧?
:
: internal

d********g
发帖数: 10550
37
这就奇怪了,你自己写的没几行的代码居然都不知道用了几个指针,那你最后还怎么
free呢?就您这两下子还玩指针呢,C是跟VB老师学的吧,LOL

【在 N********n 的大作中提到】
:
: 这都啥馊主意啊,你咋知道只有俩指针IN THE PLAY?如果还第三个指针指
: 向其中任何一值你这SWAP指针岂不是漏了。您这两下子还点评C编程,LOL.

j******g
发帖数: 436
38
我的看法是指针操作是很不好的行为。不过也不重要,很多时候能够省一半的开发时间
,比2x speedup重要的多了。就比如你举得例子吧,你也不会真正evaluate对整个系统
有多大的影响,去看instructions究竟发生了什么。

【在 d********g 的大作中提到】
: Python的swap还可以这样呢:
: a, b = b, a
: 这和C的指针swap一样,才是internal implementation指导用法的典型例子

z********0
发帖数: 9013
39
指针在C里谈不上Internal Implementation吧。。。

【在 d********g 的大作中提到】
: Python的swap还可以这样呢:
: a, b = b, a
: 这和C的指针swap一样,才是internal implementation指导用法的典型例子

N********n
发帖数: 8363
40

能SWAP VALUE谁没事SWAP指针?假如有多个指针SWAP VALUE一次就解决,用
你的方法方法还得把每个指针都SWAP一遍。自以为聪明结果搬石头咋自己脚,
连这都想不明白还指点C 编程,HOHO.

【在 d********g 的大作中提到】
: 这就奇怪了,你自己写的没几行的代码居然都不知道用了几个指针,那你最后还怎么
: free呢?就您这两下子还玩指针呢,C是跟VB老师学的吧,LOL

相关主题
感觉用python的人,属于程序员中的文艺青年那类的学python的一点小感觉哈
python要把@当作矩阵乘法算符阅读scala中
Java is back谁知道这个嵌套的Python if 是啥意思?
进入Programming版参与讨论
t****a
发帖数: 1212
41
上面一位朋友的帖子用函数式风格来写python
def StripNonAscii(self, non_ascii_string):
striped_str = ''.join([c for c in non_ascii_string if ord(c) < 128])
return (striped_str, (striped_str == non_ascii_string))
本质上就是转换string为list,do filtering,then apply join function on it。非
常典型的函数式风格。
python为了保持对fortran c系列冯诺伊曼式语言的兼容,保留了mutable方式的写法,
可能因此才会有楼主的例子中s += c这种低效code的出现,可叹。
f******y
发帖数: 2971
42
懒得跟一个写python的人争这些,继续写你的python好了。你认为那种写法好,你就那
么写python。

【在 d********g 的大作中提到】
: A && B || C都不理解,你怎么学的C啊
j******g
发帖数: 436
43
s+=c 表达的意思非常明确,理论上编译器应该对其优化的,不过可能python本身的局
限性决定的。

【在 t****a 的大作中提到】
: 上面一位朋友的帖子用函数式风格来写python
: def StripNonAscii(self, non_ascii_string):
: striped_str = ''.join([c for c in non_ascii_string if ord(c) < 128])
: return (striped_str, (striped_str == non_ascii_string))
: 本质上就是转换string为list,do filtering,then apply join function on it。非
: 常典型的函数式风格。
: python为了保持对fortran c系列冯诺伊曼式语言的兼容,保留了mutable方式的写法,
: 可能因此才会有楼主的例子中s += c这种低效code的出现,可叹。

m*******l
发帖数: 12782
44
任何没有优化的编译器应该说是不是一个合格的编译器

【在 j******g 的大作中提到】
: s+=c 表达的意思非常明确,理论上编译器应该对其优化的,不过可能python本身的局
: 限性决定的。

y*******g
发帖数: 6599
45
解释器呢

【在 m*******l 的大作中提到】
: 任何没有优化的编译器应该说是不是一个合格的编译器
d********g
发帖数: 10550
46
我写C的时候你写拼音,我写Python的时候你终于开始写C了。不知道你啥时候开始写
Python,呵呵

【在 f******y 的大作中提到】
: 懒得跟一个写python的人争这些,继续写你的python好了。你认为那种写法好,你就那
: 么写python。

q*c
发帖数: 9453
47
这么直白的语法, 多用了 120 bytes. 少死亡 120 脑细胞。
就看你觉得你的脑细胞值钱, 还是计算机的内存条值钱了。
一切玩弄奇技淫巧的玩意,开始能被一群 nerd 喧嚣一时, 但是
longrun 最后在 c & java 的易用性直白性王道面前, 都是土鸡瓦狗。

【在 d********g 的大作中提到】
: 下面这个捉急的片段,看有多少是用C风格/思路来写Python的,另外还有无法忍受的错
: 误/不推荐做法:
: def strip_non_ascii(self, string):
: ''' Returns the string without non ASCII characters'''
: s = ""
: nonascii = 0
: for c in string:
: if ord(c) < 128:
: s += c
: else:

q*c
发帖数: 9453
48
and his code is as simple and easy to understand as water.
so we drink water everyday, and for 1 MM years, and probably forever.
but no drink/wine/etc will ever last.

it

【在 c****e 的大作中提到】
: I know immutable. But it's python's complier's job to optimize this.
: javascript used to be slow to s+=, now it's even faster than stringbuidler
: because people like to write in that way.
: I agree the way he wrote is not every FP. where|join can make code more
: expressive. But my point is even his code is verbose, as long as it works it
: could be fine. I don't know your concrete story, but don't laugh at
: novince. He might just need a little bit practice and learn a few
: conventions.
: Back to the post, let's not start perf discussion on python.

q*c
发帖数: 9453
49
这些同学还在玩弄奇技淫巧因此洋洋得意的阶段。就像当年的手工作坊写小程序玩弄技
巧, 以陈序难懂为荣。
觉得自己的奇技淫巧比别人多了两样, 因此有某种隐晦的快感。 呵呵。

【在 d********u 的大作中提到】
: "风格关乎效率"的语言是没生命力的。说难听点儿,就是玩具。
q*c
发帖数: 9453
50
那样就没有 "Style" 了。

【在 i***r 的大作中提到】
: 加个括号不是更readable么
相关主题
python 有什么好书可以读一读?求助:Wavelet 的 library (转载)
Python:请问如何把list变成structured array。Python小问题
BT实战python注释问题。
进入Programming版参与讨论
t****a
发帖数: 1212
51
呵呵,类比一下数学,这就好比已经有f(1)+f(2)+...+f(n)的表示法以后,人们还要使
用sum_i^n{f(i)}的表示法。不要恶意揣测啊。
前面有位朋友说的对啊,用简单的符号来表示以后,优化是编译器的责任,现在显然还
有距离。

【在 q*c 的大作中提到】
: 这些同学还在玩弄奇技淫巧因此洋洋得意的阶段。就像当年的手工作坊写小程序玩弄技
: 巧, 以陈序难懂为荣。
: 觉得自己的奇技淫巧比别人多了两样, 因此有某种隐晦的快感。 呵呵。

m*******l
发帖数: 12782
52
类比就是诡辩,
你这个类比根本不对
程式语言和非程式语言是矛盾的两个方面,不是互相替代的关系
是互补的,不是互赤

【在 t****a 的大作中提到】
: 呵呵,类比一下数学,这就好比已经有f(1)+f(2)+...+f(n)的表示法以后,人们还要使
: 用sum_i^n{f(i)}的表示法。不要恶意揣测啊。
: 前面有位朋友说的对啊,用简单的符号来表示以后,优化是编译器的责任,现在显然还
: 有距离。

g****n
发帖数: 40
53
高人!

【在 g*****g 的大作中提到】
: 不懂python,但regex不就一行的事情吗,大多数语言都支持。
: String.replaceAll("[^\x00-\x7F]", "")

d********g
发帖数: 10550
54
有些人脑子是不好使,这里说的Python不应该用C的思想来写,到你这变成Python和C来
PK了
好比川菜粤菜都好吃,你妈现在居然有人非要用泡椒做叉烧,还说凭什么叉烧不能用泡
椒,你尝出来味道不对是舌头的问题,反正最后拉出来都是屎,舌头要优化好,吃什么
都是香的,一切其它菜系在川菜的强大攻势前都是土鸡瓦狗。我看这脑细胞都死光了才
能这么说吧

【在 q*c 的大作中提到】
: 这么直白的语法, 多用了 120 bytes. 少死亡 120 脑细胞。
: 就看你觉得你的脑细胞值钱, 还是计算机的内存条值钱了。
: 一切玩弄奇技淫巧的玩意,开始能被一群 nerd 喧嚣一时, 但是
: longrun 最后在 c & java 的易用性直白性王道面前, 都是土鸡瓦狗。

d********g
发帖数: 10550
55
别五十步笑百步了,“玩弄奇技淫巧”的语言首推C,如果连这个都认识不到,那还是
怪入门错找了体育老师吧

【在 q*c 的大作中提到】
: 这些同学还在玩弄奇技淫巧因此洋洋得意的阶段。就像当年的手工作坊写小程序玩弄技
: 巧, 以陈序难懂为荣。
: 觉得自己的奇技淫巧比别人多了两样, 因此有某种隐晦的快感。 呵呵。

d********g
发帖数: 10550
56
我觉得连默认优先级都搞不清楚的,还是别编程比较好

【在 q*c 的大作中提到】
: 那样就没有 "Style" 了。
w*********l
发帖数: 1337
57
跟你说了有了OS跟Architecture的基础这个完全可以自己想出来 - 一个是一两条指令
做完,另一个要串拷贝。你那个+=生成新的有这么显然吗?

swap

【在 d********g 的大作中提到】
: 用internal implementation来指导用法,C难道还能笑别人?随便一个简单例子:swap
: 指针地址来swap值,这比直接swap值要高效吧?
:
: internal

p**o
发帖数: 3409
58
这叫 generator expression,
generator 指的是带yield的函数

【在 d********g 的大作中提到】
: 对,用generator会更省
f******y
发帖数: 2971
59
相反我认为C的东西很直白,可能对你来说有点复杂。

【在 d********g 的大作中提到】
: 别五十步笑百步了,“玩弄奇技淫巧”的语言首推C,如果连这个都认识不到,那还是
: 怪入门错找了体育老师吧

f******y
发帖数: 2971
60
我每次都加括号,编程编的好好的,从来不因为这个出bug。
你这么注重那些东西,应该是谭浩强教出来的吧。

【在 d********g 的大作中提到】
: 我觉得连默认优先级都搞不清楚的,还是别编程比较好
相关主题
How to check if an object is null in python?谁能说说Perl, Python, Tcl各自的优缺点?主要应用场合?
怎样运行一个 Python script?大家用python 调用C++是如何搞的
Any Python book recommend: Entry level?Python unicode问题
进入Programming版参与讨论
d********g
发帖数: 10550
61
A && B || C直白得令人发指,我不知道为什么对你来说那么复杂?笑死了

【在 f******y 的大作中提到】
: 相反我认为C的东西很直白,可能对你来说有点复杂。
d********g
发帖数: 10550
62
连顺序都搞不清楚的还能编得好?这基本功也太差了,a++和++a对你来说都一样吧。建
议你先去找谭浩强教教……

【在 f******y 的大作中提到】
: 我每次都加括号,编程编的好好的,从来不因为这个出bug。
: 你这么注重那些东西,应该是谭浩强教出来的吧。

f******y
发帖数: 2971
63
我也没说复杂,只是上来confirm一下。而且我在原问题里把逻辑简化成这个的,如果
你看到原来的code有很多层的判断放一起这种写法其实很差。
另外你一直抓着这个对你的编程有帮助吗?

【在 d********g 的大作中提到】
: A && B || C直白得令人发指,我不知道为什么对你来说那么复杂?笑死了
f******y
发帖数: 2971
64
发现你从头到尾整个贴里一直都在臆想,这个也算是行艺了吧?

【在 d********g 的大作中提到】
: 连顺序都搞不清楚的还能编得好?这基本功也太差了,a++和++a对你来说都一样吧。建
: 议你先去找谭浩强教教……

d********g
发帖数: 10550
65
A && B || C或者A and B or C我早就理解了,对我的编程当然没有任何帮助,对你的
编程应该还是有一定帮助的。你拒不接受好心人帮助,是什么心态呢?

【在 f******y 的大作中提到】
: 我也没说复杂,只是上来confirm一下。而且我在原问题里把逻辑简化成这个的,如果
: 你看到原来的code有很多层的判断放一起这种写法其实很差。
: 另外你一直抓着这个对你的编程有帮助吗?

f******y
发帖数: 2971
66
btw,后来我又去看那人的code,他已经自己加上括号了。他知道你在这里的行为肯定
很感动。。。

【在 f******y 的大作中提到】
: 我也没说复杂,只是上来confirm一下。而且我在原问题里把逻辑简化成这个的,如果
: 你看到原来的code有很多层的判断放一起这种写法其实很差。
: 另外你一直抓着这个对你的编程有帮助吗?

d********g
发帖数: 10550
67
你臆想的那也太多了,以为这世上就你一个人写C,呵呵。我原帖可是说的Python里不
能用C的思想/习惯来写,到了你这变成Python与C掐架了

【在 f******y 的大作中提到】
: 发现你从头到尾整个贴里一直都在臆想,这个也算是行艺了吧?
f******y
发帖数: 2971
68
我也没掐架啊,只是指出来让写C用python的习惯也不行。

【在 d********g 的大作中提到】
: 你臆想的那也太多了,以为这世上就你一个人写C,呵呵。我原帖可是说的Python里不
: 能用C的思想/习惯来写,到了你这变成Python与C掐架了

c*********n
发帖数: 182
69
哦对了忘了说了 1 == True 的哦
L***n
发帖数: 6727
70
写C没法用python的习惯吧,C不支持fp

【在 f******y 的大作中提到】
: 我也没掐架啊,只是指出来让写C用python的习惯也不行。
相关主题
Python unicode问题python要把@当作矩阵乘法算符
老年C 程序员求建议Java is back
感觉用python的人,属于程序员中的文艺青年那类的学python的一点小感觉哈
进入Programming版参与讨论
m*******l
发帖数: 12782
71
C supports Functions though

【在 L***n 的大作中提到】
: 写C没法用python的习惯吧,C不支持fp
g*******t
发帖数: 7704
72
代码的最重要的是维护容易, 那种精炼的语句都不适合维护,
i***r
发帖数: 1035
73
其实,我觉得记得 PEDMAS差不多就够了,能够记得多自然是好事
但是几十个operator,也许你熟悉这几个,我熟悉那几个 ---- 看彼此的code还要
google一下不是?
懂C的来看python,还要google一下不是?

【在 d********g 的大作中提到】
: 连顺序都搞不清楚的还能编得好?这基本功也太差了,a++和++a对你来说都一样吧。建
: 议你先去找谭浩强教教……

m*******l
发帖数: 12782
74
pemdas

【在 i***r 的大作中提到】
: 其实,我觉得记得 PEDMAS差不多就够了,能够记得多自然是好事
: 但是几十个operator,也许你熟悉这几个,我熟悉那几个 ---- 看彼此的code还要
: google一下不是?
: 懂C的来看python,还要google一下不是?

i***r
发帖数: 1035
75
呵呵,见笑了

【在 m*******l 的大作中提到】
: pemdas
1 (共1页)
进入Programming版参与讨论
相关主题
How to check if an object is null in python?python要把@当作矩阵乘法算符
怎样运行一个 Python script?Java is back
Any Python book recommend: Entry level?学python的一点小感觉哈
谁能说说Perl, Python, Tcl各自的优缺点?主要应用场合?阅读scala中
大家用python 调用C++是如何搞的谁知道这个嵌套的Python if 是啥意思?
Python unicode问题python 有什么好书可以读一读?
老年C 程序员求建议Python:请问如何把list变成structured array。
感觉用python的人,属于程序员中的文艺青年那类的BT实战
相关话题的讨论汇总
话题: python话题: nonascii话题: ascii话题: string话题: swap