我被赋予了创建代码的任务.任务如下:
你是一艘帆船的船长,你和你的船员被海盗俘虏了.海盗船长让你们所有人在他的船甲板上站成一圈,试图决定你应该走哪条木板.最终他决定采用以下方法:
(a)海盗船长要你挑一个号码N.
(b)第一个走板的人是第N人(从你开始).
(c)然后船长将继续围绕圆圈,迫使每个第N个人走板.
(d)一旦只剩下一人,该人将获得自由.
例如:剧组包括:Andrew,Brenda,Craig,Deidre,Edward,Felicity,Greg和Harriet.安德鲁选择N = 2.船员将按顺序走板:Brenda,Deidre,Felicity,Harriet,Craig,Greg,Edward.安德鲁将获得自由.
我到目前为止的代码是:
def survivor(names, step):
names = ["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"]
Next = step - 1
names.pop(Next)
print names
Run Code Online (Sandbox Code Playgroud)
这将从列表中删除第一个第n个人,但我不知道如何循环列表以继续删除第n个人.
我需要它,所以让我们假设步骤= 3,然后我需要它去除克雷格然后从克雷格开始计算并删除下一个第三个元素,这是幸福等等,直到有一个人离开.
我怎样才能做到这一点?
我想为一些将文件作为第一个参数的函数编写装饰器.装饰器必须实现上下文管理器协议(即将包装函数转换为上下文管理器),所以我想我需要用类包装函数.
我对装饰模式并不熟悉,之前从未实现过上下文管理器,但是我写的内容在Python 2.7中有效,如果我注释掉它,它也适用于Python 3.3 wraps
.
from functools import wraps
def _file_reader(func):
"""A decorator implementing the context manager protocol for functions
that read files."""
# @wraps(func)
class CManager:
def __init__(self, source, *args, **kwargs):
self.source = source
self.args = args
self.kwargs = kwargs
self.close = kwargs.get('close', True)
def __enter__(self):
# _file_obj is a little helper that opens the file for reading
self.fsource = _file_obj(self.source, 'r')
return func(self.fsource, *self.args, **self.kwargs)
def __exit__(self, exc_type, exc_value, traceback):
if self.close:
self.fsource.close()
return False …
Run Code Online (Sandbox Code Playgroud) 我一直在http://lightbird.net/dbe/photo.html上处理这个照片管理器和共享应用程序第一部分.我正在尝试生成缩略图,当我这样做时.我收到这个错误.
我有Windows Vista.
IOError at /admin/photo/image/add/
(13, 'Permission denied')
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/photo/image/add/
Django Version: 1.4.3
Exception Type: IOError
Exception Value: (13, 'Permission denied')
Exception Location:C:\Python26\lib\site-packages\PIL\Image.py in save, line 1399
Python Executable:C:\Python26\python.exe
Python Version: 2.6.0
Python Path:
['C:\\djcode\\mysite',
'C:\\Python26\\python26.zip',
'C:\\Python26\\DLLs',
'C:\\Python26\\lib',
'C:\\Python26\\lib\\plat-win',
'C:\\Python26\\lib\\lib-tk',
'C:\\Python26',
'C:\\Python26\\lib\\site-packages',
'C:\\Python26\\lib\\site-packages\\PIL']
Server time: Sun, 10 Feb 2013 23:49:34 +1100
Run Code Online (Sandbox Code Playgroud)
我的models.py
是
from django.db import models
from django.contrib.auth.models import User
from django.contrib import admin
from string import join
from django.core.files import …
Run Code Online (Sandbox Code Playgroud) 对于那些了解perl的人,我正在寻找类似于Test::Deep::is_deeply()
Python的东西.
在Python的unittest中,我可以方便地比较嵌套数据结构,如果我希望它们相等:
self.assertEqual(os.walk('some_path'),
my.walk('some_path'),
"compare os.walk with my own implementation")
Run Code Online (Sandbox Code Playgroud)
但是,在通缉测试中,os.walk
元组的相应子列表中的文件顺序无关紧要.
如果只是这一个测试,那么可以编写一个简单的解决方案.但我设想对不同结构的嵌套数据进行多次测试.我希望得到一个普遍的解决方案.
我检查了Python自己的unittest文档,查看了pyUnit,以及它的鼻子和它的插件.主动维护也是使用的一个重要方面.
对我来说,最终的目标是将有一组描述性的类型,如UnorderedIterable
,SubsetOf
,SupersetOf
,等这才叫来形容一个嵌套的数据结构,然后用这样的描述比较两个实际的数据集.
在os.walk示例中我喜欢以下内容:
comparison = OrderedIterable(
OrderedIterable(
str,
UnorderedIterable(),
UnorderedIterable()
)
)
Run Code Online (Sandbox Code Playgroud)
以上描述了list(os.walk())
将返回的数据结构的类型.为了比较单元测试中的数据A
和数据B
,当前路径名称将被转换为a str()
,并且将比较dir和文件列表而忽略订单:
self.assertDeep(A, B, comparison, msg)
Run Code Online (Sandbox Code Playgroud)
那里有什么吗?或者人们自己编写这样一个微不足道的任务?我觉得这样做很舒服,但是我不想重新发明,特别是不想编写完整的正交类型集,对它们进行测试等等.总之,我不会发布它,因此下一个有重写......
任何人都可以解释我这段代码:
>>> round(0.45, 1)
0.5
>>> round(1.45, 1)
1.4
>>> round(2.45, 1)
2.5
>>> round(3.45, 1)
3.5
>>> round(4.45, 1)
4.5
>>> round(5.45, 1)
5.5
>>> round(6.45, 1)
6.5
>>> round(7.45, 1)
7.5
>>> round(8.45, 1)
8.4
>>> round(9.45, 1)
9.4
Run Code Online (Sandbox Code Playgroud)
更新
我想这是因为浮动表示.我对吗?
难过这是有效的:
if 5 % 2 == 0:
print "no remainder"
else:
pass
Run Code Online (Sandbox Code Playgroud)
但不是这个:
print "no remainder" if 5% 2 == 0 else pass
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 我们正在等待姐姐的结果。印度政府也经常遇到这种情况。服务器很慢,流量很大。
于是,我想到写一个python程序,不断尝试,直到服务器响应Http请求。但该程序:
import urllib
i=1
f = open("C:/Users/DELL/Desktop/neetpg.html",'w')
while(True):
try:
page = urllib.urlopen("http://www.nbe.gov.in/asr/neet_pdf/")
print "Done"
break
except:
print i
i += 1
continue
f.write(page.read())
print "check"
Run Code Online (Sandbox Code Playgroud)
但该程序无法正常运行。我尝试将 url 替换为facebook.com
,它仍然打印出数字。
此外,我想要实现的是,如果服务器确实响应,则网页会加载 js 和 css 文件以及 html 文件,并且所有这些都应该在浏览器中打开。
我还从http://docs.python.org/2/library/webbrowser.html中得到了提示 ,并将程序更改为:
import webbrowser
i=1
while(True):
try:
webbrowser.open("http://www.nbe.gov.in/asr/neet_pdf/")
print "Done"
break
except:
print i
i += 1
continue
print "check"
Run Code Online (Sandbox Code Playgroud)
但所有这一切都是在我的默认网络浏览器中打开一个新窗口,并将网址设置为给定的内容,然后“打开它”。同时,在 python shell 上打印 Done 和 Check。
Web 浏览器未收到服务器的响应,将显示could not connect to www.nbe.gov.in
。
如何实现这一目标?
编辑:刚刚看到 facebook.com 脚本毕竟有效。大约尝试了 15 …
有没有一种简单的方法可以将精确的字符串转换为re.compile
对象?例如,我想混合精确的字符串和正则表达式。
我有一个包含以下字段的表单:
image_choices = []
images = forms.ChoiceField(label=_("Images"), choices=image_choices, initial="")
Run Code Online (Sandbox Code Playgroud)
在了解“初始”属性的值应该是什么之后,我需要能够更新该值。目前,我已在以下时间内完成此作业__init__
:
def __init__(self, request, image_choices=image_choices,
flavor_choices=flavor_choices, args, *kwargs):
super(UpdateWorkload, self).__init__(request, args, *kwargs)
selected_image = selected_workload['image']
self.fields['images'].initial = selected_image
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,并且在打印时,该值就在那里,但是,在屏幕上的实际表单中,我仍然得到默认列表,并且没有选择特定项目,根据self.fields['images'].initial = str(selected_image)
我该如何解决这个问题?
我在我的机器上安装了Python 2.7.11,据我所知应该带有pip,但是当我检查C:\Python27\Tools\Scripts\
目录时没有pip.exe
存在.
我已经尝试完全删除并重新安装Python 2.7.11但没有成功.运行安装程序pip设置为安装,但在安装点后无处可寻.
我也安装了Python 3.4,它具有预期的pip.有什么想法吗?
python ×8
python-3.x ×4
python-2.7 ×3
django ×2
windows ×2
decorator ×1
django-forms ×1
functools ×1
nested ×1
permissions ×1
pip ×1
regex ×1
rounding ×1
unit-testing ×1
urllib ×1