小编Jim*_*ard的帖子

我的函数nearest_power(base,num)在某些测试用例中失败了

def closest_power(base, num):
    '''
    base: base of the exponential, integer > 1
    num: number you want to be closest to, integer > 0
    Find the integer exponent such that base**exponent is closest to num.
    Note that the base**exponent may be either greater or smaller than num.
    In case of a tie, return the smaller value.
    Returns the exponent.

    '''

    result=0
    exp=1
    while base**exp<num:
        if base**exp <= num < base**(exp+1):
           result = exp

        elif num - base**exp <= base**(exp+1) - num: …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

Python 列表中的 and 运算符

我在 Python 中发现了一些非常奇怪的行为。我的一位学生在尝试查找属于两个列表的元素时犯了某种错误,他写道:

list1 and list2
Run Code Online (Sandbox Code Playgroud)

奇怪的行为是 Python 3 没有触发任何错误! list1 and list2实际上有一个值为list2

这有什么已知的原因吗?

python operators python-3.x

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

TypeError:translate()只接受一个参数(给定2个)

我的代码在python 2.x版本上运行正常但是当我试图在python 3.x版本上运行它时,它给出了错误.

subject:需要缩写sms编码中的任何消息.

码:

def sms_encoding(data):
    #start writing your code here
    print(data)
    data.split(" ")
    data_list=data.split(" ")
    sms_encd=[]
    final_sms=""
    for i in range(len(data_list)):
        if data_list[i].lower() in  ['a','e','i','o','u']:
            sms_encd.append(data_list[i])
        elif len(data_list[i])>1:
            a = data_list[i].translate(None,'aeiouAEIOU')
            sms_encd.append(a)
    for j in range(len(sms_encd)):
        final_sms += str(sms_encd[j])+" "
    return final_sms[:-1]
data="I will not repeat mistakes"
print(sms_encoding(data)) 
Run Code Online (Sandbox Code Playgroud)

输出:

2.x版本:

I will not repeat mistakes
I wll nt rpt mstks
Run Code Online (Sandbox Code Playgroud)

3.x版本:

I will not repeat mistakes
Traceback (most recent call last):
  File "python", line 18, in <module>
  File …
Run Code Online (Sandbox Code Playgroud)

python string python-2.7 python-3.x

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

检查类是否可迭代

我有一个fib下面给出的课程.它实现__iter____next__.它是一个可迭代的,也是它自己的迭代器.

class fib(object):
    def __init__(self):
        self.prev = 0
        self.curr = 1

    def __iter__(self):
        return self

    def __next__(self):
        value = self.curr
        self.curr += self.prev
        self.prev = value
        return value


from collections import Iterable

print(isinstance(fib, Iterable))
Run Code Online (Sandbox Code Playgroud)

print语句返回False,我希望它返回True

python iterable class python-3.x

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

Docstring具有不一致的前导空格

在以下代码中:

def read_file(filename):
    """
    >>> read_file('text.txt')
    {'Donald Trump': [('Donald Trump', 'Join me live in Springfield, Ohio!\nLit!!\n', 1477604720, 'Twitter for iPhone', 5251, 1895)]}
    """
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

ValueError: line 4 of the docstring for __main__.read_file has inconsistent leading whitespace: 'Lit!!'
Run Code Online (Sandbox Code Playgroud)

是什么原因引起了这个?

python docstring python-3.x

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

将列表元素拆分为 key/val 字典

我有这个:

query='id=10&q=7&fly=none'

我想将它拆分以创建一个像这样的字典:

d = { 'id':'10', 'q':'7', 'fly':'none'}
Run Code Online (Sandbox Code Playgroud)

我怎样才能用很少的代码做到这一点?

python dictionary split list python-3.x

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

这些变量是什么?

我知道可能这个问题可能会因为它的特殊性而得到一些负面影响而且可能听起来很愚蠢.但我对Python的语法很新,我甚至不确定"变量"是否是答案的一部分.所以,请冷静:)

我在Github 上看这个Repository.

在这里,我在某些线条上看到了一些奇怪的东西(例如57,89等等). 作者提出了一些下划线,并在他们后面加了一些逗号.虽然我不知道它们是什么意思:

_, _, param1, params, _, _, expr, _ , app = node
Run Code Online (Sandbox Code Playgroud)

据我所知,放置多个变量的语法是:

var1, var2 ,var3 = 1, 2, "3"
Run Code Online (Sandbox Code Playgroud)

但是在这一点上我不知道会发生什么,因为简单的下划线不被认为是变量,特别是当它们被多次使用时(或者它们是什么?)并且git存储库中的语法不遵循上面的规则.

我搜索了Python的一些语法备忘单,但这与任何内容都不匹配.所以我想得到你们中的一些人的帮助.谢谢

- 我的经验仅限于C/C++/C#/ Java/Javascript [...]

python syntax python-2.7 python-3.x

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

我应该用_开始内部方法吗?

如果我有一个具有多个内部函数的对象,这些函数并不完全适用于外部调用。我应该总是用_或开始它们__吗?

python naming-conventions python-3.x

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

AttributeError:模块'pygal'没有属性'Worldmap'

我试着:

import pygal
wm = pygal.Worldmap()
Run Code Online (Sandbox Code Playgroud)

但它引起了:

AttributeError: module 'pygal' has no attribute 'Worldmap'
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这是什么问题?

python python-3.x pygal

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

与 trace_add 等效的跟踪方法“u”参数?

考虑到自 Python 3.6 起不推荐使用tkinter变量类的 trace()方法,应使用新方法:trace_add()

  • trace('w', method) 已经成为 trace_add('write', method)
  • trace('r', method) 已经成为 trace_add('read', method)

我想知道'u'现在如何指定参数?例如,考虑前者:

trace('wu', method)

我在文档或其他任何地方都找不到任何内容。

python tkinter python-3.x python-3.6

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