我正在阅读计算机程序的结构和解释 - 在计算机科学领域很有名.
受到函数式编程的鼓励,我尝试用Python而不是Scheme编写代码,因为我发现它更容易使用.但接下来的问题是:我需要多次使用Lambda函数,但我无法弄清楚如何使用lambda复杂的操作来编写一个未命名的函数.
在这里,我想编写一个lambda函数,其中一个字符串变量exp作为唯一的参数并执行exec(exp).但我得到一个错误:
>>> t = lambda exp : exec(exp)
File "<stdin>", line 1
t = lambda exp : exec(exp)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
怎么会发生?如何应对呢?
我阅读了我的Python指南,并在没有找到我想要的答案的情况下搜索了Google.这是否意味着lambdapython 中的函数只是设计为语法糖?
这是我的第一篇文章,我对编程很陌生,所以我可能无法恰当地传达我的问题,但我会尽我所能!
tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}
ub_tries = user input
tries = 1
input ('\nCome on make your ' + tries_dict.get(tries) + guess: ')
Run Code Online (Sandbox Code Playgroud)
这三个元素是我创建的数字猜测游戏的一部分,我将它们包含在每个错误答案之后的while循环中tries += 1.
正如您所看到的,在我的字典中,前4个答案的自定义值和游戏结束前的最后可能机会,所以这是我尝试做的:
我想找到一种方法,在'4th'和'last'之间为每个答案/键设置'NEXT'值.
如:
tries = 5
Come on make your next guess
tries = 6
Come on make your next guess
Run Code Online (Sandbox Code Playgroud)
等等
我确实找到了一种带有复杂循环的方法,但是我想知道更好的/实用的方法来实现这一点.
以下是我想到的一些选项,但无法开始工作:
ub_tries并将该列表用作键所以一般来说:如何创建一种方法来获得未在字典中指定的键的一般答案(下一个或其他)?
任何反馈都会非常感激,随时可以要求澄清,因为我可以告诉自己我的问题有点混乱.
我希望我在编程和提出相关问题时变得更加狡猾,到目前为止,我的编程几乎和我的总结技巧一样混乱,感叹!
我有一些Python程序从文件中读取某些值.
文件示例:
0
4
5
6
Run Code Online (Sandbox Code Playgroud)
解析每一行的代码如下:
s = f2.readline()
p = int(s)
Run Code Online (Sandbox Code Playgroud)
我试图传递sys.maxint文件,如下所示:
0
sys.maxint
5
6
Run Code Online (Sandbox Code Playgroud)
其中一种方法if (s=='sys.maxint')是在代码中检查特殊情况.
我想知道是否有另一种巧妙的方法呢?
我是Python编程的新手.我的问题是,如何同时下载几个文件.不是逐个文件,而是同时从ftp上的一个目录.现在我使用这个脚本,但我不知道如何重建这段代码:
filenames = []
ftp.retrlines("NLST", filenames.append)
print filenames
print path
for filename in filenames:
local_filename = filename
print filename
print local_filename
f = open(local_filename, "wb")
s = ftp.size(local_filename)
sMB = s/(1024*1024)
print "file name: " + local_filename + "\nfile size: " + str(sMB) + " MB"
ftp.retrbinary("RETR %s" % local_filename, f.write)
print "\n Done :) "
time.sleep(2)
f.close()
ftp.quit() #closing connection
time.sleep(5)
Run Code Online (Sandbox Code Playgroud)
它工作正常,但不是我需要的.
我有值列表:
md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']
Run Code Online (Sandbox Code Playgroud)
我想将它们连接成一个查询字符串:
'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我希望有类似的东西
def x():
print get_def_name()
Run Code Online (Sandbox Code Playgroud)
但不一定知道的名字x.
理想情况下,它将返回'x'x将是函数的名称.
我无法理解为什么我的代码无法正常工作.我试图从列表中删除长度只有一个字符的单词:
line = ['word','a','b','c','d','e','f','g']
for words in line:
if len(words) == 1:
line.remove(words)
Run Code Online (Sandbox Code Playgroud)
此代码返回此(它看起来删除'每隔一个'单个字符):
>>> line
['word', 'b', 'd', 'f']
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么这不正常以及如何解决?
代码采用整数n并接受n-1元素.输入的元素都是从数字1到n,除非他们中的一个.我们应该找到缺失的元素.
这个解决方案是最快的.但是,我不明白.
有人能解释一下吗?
#include <iostream>
int main(){
int g,n,i,k;
std::cin>>n;
for(i=1; i<n; i++){
std::cin>>g;
k^=i^g;
}
std::cout<<(k^n);
}
Run Code Online (Sandbox Code Playgroud)
输入:
10
3 8 10 1 7 9 6 5 2
Run Code Online (Sandbox Code Playgroud)
输出:
4
Run Code Online (Sandbox Code Playgroud) 我有一个清单,例如:
res = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]
Run Code Online (Sandbox Code Playgroud)
我想计算有多少个列表包含特定字母。例如,“a”包含在 3 个列表中,“b”包含在 2 个列表中,“c”包含在 1 个列表中。
下面的代码是我到目前为止所拥有的:
count=0
docs='a'
list1=[]
for c in range(len(res)):
for i in res[0]:
list1.append(i)
for i in list1:
if i == docs:
count=1
print count
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用该str.format()函数在列中打印矩阵。
这是出错的行:
>>>> "{!s:4}{!s:5}".format('j',4,3)
'j 4 '
>>>> "{!s:4}{!s:5}".format(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> b
('dat', 'is')
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:我想我知道问题是什么:我传递一个包含两个元素的元组,而不是作为一个包含一个元素的元组传递给函数,我的原始元组。因此出现此错误。所以问题是如何将这个元组传递给格式函数......
python ×9
file ×2
list ×2
python-2.7 ×2
string ×2
algorithm ×1
c++ ×1
count ×1
dictionary ×1
download ×1
ftplib ×1
function ×1
iteration ×1
key ×1
loops ×1
query-string ×1
range ×1
simultaneous ×1
tuples ×1
xor ×1