小编Joh*_*wyn的帖子

ValueError:负数不能提升到分数幂

当我在终端尝试这个时

>>> (-3.66/26.32)**0.2
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: negative number cannot be raised to a fractional power
Run Code Online (Sandbox Code Playgroud)

但是,我能够通过两个步骤完成此操作,例如:

>>> (-3.66/26.32)
-0.13905775075987842
>>> -0.13905775075987842 ** 0.2
-0.6739676327771593
Run Code Online (Sandbox Code Playgroud)

为什么会这样?单线解决这个问题的方法是什么?

python

20
推荐指数
2
解决办法
1万
查看次数

Python是dict一个对象吗?

dict喜欢这样的:

>>> my_dict = {u'2008': 6.57, u'2009': 4.89, u'2011': 7.74,
...            u'2010': 7.44, u'2012': 7.44}
Run Code Online (Sandbox Code Playgroud)

输出has_key:

>>> my_dict.has_key(unicode(2012))
True
Run Code Online (Sandbox Code Playgroud)

输出hasattr:

>>> hasattr(my_dict, unicode(2012))
False
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么这种行为有所不同.我用Google搜索并发现它是因为dict和对象不同.

但是,我仍然无法正确理解差异.

(顺便说一句:我使用的是python 2.7)

python dictionary

12
推荐指数
1
解决办法
9133
查看次数

dict(groupby)和groupby之间的区别

我有这样的清单

[u'201003', u'200403', u'200803', u'200503', u'201303',
 u'200903', u'200603', u'201203', u'200303', u'200703', u'201103']
Run Code Online (Sandbox Code Playgroud)

我们将此列表称为'years_list'

当我做年组时,

group_by_yrs_list = groupby(years_list, key = lambda year_month: year_month[:-2]) 
for k,v in group_by_yrs_list:
  print k, list(v)
Run Code Online (Sandbox Code Playgroud)

我得到了所需的输出:

2010 [u'201003']
2004 [u'200403']
2008 [u'200803']
2005 [u'200503']
2013 [u'201303']
2009 [u'200903']
2006 [u'200603']
2012 [u'201203']
2003 [u'200303']
2007 [u'200703']
2011 [u'201103']
Run Code Online (Sandbox Code Playgroud)

然后,我稍微改变了我的实现,

  group_by_yrs_list = dict(groupby(years_list, key = lambda year_month: year_month[:-2]))
  for k,v in group_by_yrs_list.items():
    print k, list(v)
Run Code Online (Sandbox Code Playgroud)

我刚刚添加了一个字典,但输出不同,

2003 []
2006 []
2007 []
2004 []
2005 []
2008 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

6
推荐指数
2
解决办法
468
查看次数

我们可以在单独的模块中使用Flask错误处理程序

我们正在将Flask应用程序从基于函数的视图迁移到可插入视图,除了错误处理程序之外,所有这些都按预期工作.我试图将所有错误处理程序放在一个名为error_handlers.py的模块中,并将其导入主模块.但它没有用.尝试在谷歌搜索并按照相同的方式找到一些Git回购,但它不适合我,请帮我解决这个问题.

app
 |
 |__ __init__.py
 |__ routing.py (which has the app=Flask(__name__) and imported error handlers here [import error_handlers])   
 |__ views.py 
 |__ error_handlers.py (Ex: @app.errorhandler(FormDataException)def form_error(error):return jsonify({'error': error.get_message()})
 |__ API (api modules)
      |
      |
      |__ __init__.py
      |__ user.py  
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 2.6和Flask 0.10.1.

python flask

6
推荐指数
2
解决办法
2450
查看次数

pymongo中的db.getCollectionNames()等价物

mongodb db.getCollectionNames()命令将在列表中为您提供当前数据库中所有集合名称.

我希望使用pymongo输出相同的输出.我google了一段时间,找不到那样的东西.

这样的东西存在吗?

mongodb pymongo

4
推荐指数
1
解决办法
6299
查看次数

Python List直接访问dict

我有一个这样的文件:

>>> k = {'finance_pl':{'S':{'2008':45,'2009':34}}}
Run Code Online (Sandbox Code Playgroud)

正常的访问方式是:

>>> k['finance_pl']['S']
{'2008': 45, '2009': 34}
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,最终用户会给我输入 finance_pl.S

我可以拆分它并像这样访问字典:

>>> doc_list = doc.split('.')
>>> k[doc_list[0]][doc_list[1]]
{'2008': 45, '2009': 34}
Run Code Online (Sandbox Code Playgroud)

但是,我不想这样做,因为字典结构可能会改变,用户可以给出类似的东西,finance_pl.new.S而不是k['finance_pl']['S']k[doc_list[0]][doc_list[1]].

我需要直接应用用户输入的东西(例如:如果是输入finance_pl.new.S,我应该能够将此.split('.')方法应用于用户输入并直接应用).

这样做的优雅方式是什么?

python

2
推荐指数
1
解决办法
110
查看次数

Python将日期字符串转换为python日期并减去

我有一种情况,我需要从字符串的date_entry位置找到前一个日期date_entry,我设法做到这一点:

>>> from datetime import timedelta, datetime
>>> from time import strptime, mktime
>>> date_str = '20130723'
>>> date_ = strptime(date_str, '%Y%m%d')
>>> date_
time.struct_time(tm_year=2013, tm_mon=7, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=204,tm_isdst=-1)
>>> datetime.fromtimestamp(mktime(date_))-timedelta(days=1)
datetime.datetime(2013, 7, 22, 0, 0)
>>>
Run Code Online (Sandbox Code Playgroud)

但是,为了这个,我必须导入模块timedelta,datetime,strptimemktime.我认为解决这个简单问题真的太过分了.

有没有更优雅的方法来解决这个问题(使用Python 2.7)?

python

1
推荐指数
1
解决办法
917
查看次数

标签 统计

python ×6

dictionary ×1

flask ×1

mongodb ×1

pymongo ×1

python-2.7 ×1