已采纳回答 / Kazusa_
<...code...>可以直接这样写,python3似乎不支持cmp参数了。使用方式可以看https://docs.python.org/3/howto/sorting.html#sortinghowto
2016-10-14
已采纳回答 / nanwenguang
filter( fun() , list ) 中第一个是判断函数,如果你想要过滤掉返回值为false的,改变fun()的内部逻辑就可以了例如: a= [1,2,3,4]print filter(lambda x:x<3,a) 你想不想保留小于3的 那就lambda x:x>=3咯你的意思肯定是想在不改变fun()内部逻辑的前提下 筛掉false的内容,我也是才学python,不是很了解。不过我觉得应该是不可能吧,毕竟filter是一个写好了的函数
2016-10-11
已采纳回答 / nanwenguang
return sorted([s1.upper(),s2.upper()]) ,返回的是一个list但是sorted(list,int)函数后面这个参数需要接受的是一个int型的值所以这么写不对 ,而写成 return cmp(s1.upper(),s2.upper()) 这样返回的就是一个int型的值了
2016-10-10
已采纳回答 / fengchidianche
Python的内存管理采用自动回收机制,你例子中的a, b, L, i均为局部变量,在所属的function执行完毕后被自动回收,因此别的function不可能访问到已经被回收的变量。而self.v1则不同,它是属于对象'self'的属性,只要对象存在,则属性就存在并共享
2016-10-09
已采纳回答 / fengchidianche
这是Python内部机制name mangling 技术做的事情。具体表现是__specialname形式的任何标识符(前面至少两个下划线,后面至多一个下划线)会被自动替换为_classname__specialname,其中classname就是类名。这也就是你直接访问__specialname时无法访问到的原因啦,是不是很可爱在你指出的例子中,你可以用以下代码自行验证一下,希望能帮到你<...code...>
2016-10-08
已采纳回答 / 打代码的科比
可以看成是a=b,b=a+b一开始是a=0,b=1。然后把a=0放进L之后,就把a设为当前b的值1,b就等于当前a的值(0)和当前b的值(1)之和1这个步骤是同时进行的,所以修改a的值,并不影响同一行修改b的值
2016-10-07
已采纳回答 / 白白的萝卜坑
Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀 u 或 U 。例如, u"This is a Unicode string." 。
2016-10-04
已采纳回答 / m_silentstone
个人认为是python解析层次关系的约定。python因为不用大括号表示层次,就需要一种约定解析层次关系,那必须有一个标准,4个空格就是这个标准吧。试了下在def下3个或5个空格也没报错
2016-10-03