小编Eth*_*wer的帖子

Python - 在for中列出具有多个参数的理解

我有这个当前列表理解:

...
cur = [[14, k, j] for j, k in rows[14], range(15)]
...
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

...        
    cur = [[14, k, j] for j, k in rows[14], range(15)]
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

任何帮助,如我将如何解决这个问题.我只是不想手动写出完整的for循环或整个列表.谢谢!:d

额外信息:

rows = [{1: '75'},
        {1: '95', 2: '64'}, 
        {1: '17', 2: '47', 3: '82'}, 
        {1: '18', 2: '35', 3: '87', 4: '10'}, 
        {1: '20', 2: '04', 3: '82', 4: '47', 5: '65'}, 
        {1: '19', 2: '01', 3: '23', 4: '75', 5: '03', 6: '34'}, 
        {1: …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list

7
推荐指数
2
解决办法
5509
查看次数

是否有一个以上的职位增量?

刚刚有一个有趣的想法。在像 C# 和 Java 这样的语言中,我知道在递增和递减的时候,你可以做一个 post,或者 pre-increment/decrement。像这样:

int a = 5;
Console.WriteLine(a++); // Would print out 5,
                        // And then increment a to 6

Console.WriteLine(++a); // Would then print out 7 because 
                        // it increments a before printing it out
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有这样的事情可以做这样的事情:

int a = 5;
Console.WriteLine(a += 5); // Would print out 5,
                           // And then increment a to 10

Console.WriteLine(a =+ 5); // (Or something along those lines)
                           // To print out 15 at this point
Run Code Online (Sandbox Code Playgroud)

只是感兴趣,并不真正知道在哪里或如何寻找答案,所以想知道 SO 上是否有人会对此有更多了解。谢谢! …

c# java math

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

由于某种原因,Python 请求库帖子被 Django 解释为 GET

我试图向我们应用程序的 api 发出一个 post 请求以进行一些回归测试,但由于某种原因,当我通过 requests 发出这样的请求时,它会被记录并解释为 GET 请求。

代码:

requests.post({HTTP_PROTOCOL}://{APP_URL}/api/route/',
              headers={'Authorization': 'Bearer ' + access_token},
              json=DATA)
Run Code Online (Sandbox Code Playgroud)

日志:

[Thu Jul 11 19:17:30 2019] GET /api/route/ => generated 2 bytes in 64 msecs (HTTP/1.1 200) 5 headers in 162 bytes (1 switches on core 1)
Run Code Online (Sandbox Code Playgroud)

然而,当我通过 Postman 发出请求时,请求工作得很好,并以 JSON 格式返回创建的对象,并且在日志中将其记录为 POST。

后端目前是用 Django 编写的,使用 Django Rest Framework 来实现 REST API。这是我们文件中的路线urls.py

url(r"^api/route/$", DataListView.as_view())
Run Code Online (Sandbox Code Playgroud)

我知道这是DataListView可行的,因为邮递员可以很好地使用它。

我也遇到过类似的问题,它不起作用,因为我发布到的路线没有斜杠,但这里不是这种情况。我知道我正在发布带有尾部斜杠的路线,正如您自己看到的那样。

问:我该如何让它发挥作用?为什么它可以在 Postman 中工作,但不能使用requests库?

编辑 1:如果提供任何线索,这是请求中的标头:

{
    'User-Agent': 'python-requests/2.22.0',
    'Accept-Encoding': 'gzip, deflate', …
Run Code Online (Sandbox Code Playgroud)

python django python-requests django-rest-framework

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

python中的递归公式用于递归sigma如何?

我最近问了这个问题并得到了第一个答案.我想把它放到python代码中.这就是我所拥有的,但我一直得到0作为答案.

def f(n, k, s):
    ans = 0
    for j in range(1, min({k,s}) + 1):
        print j
        if (n == 1):
            if (k >= s):
                ans = ans + 1
            elif (k < s):
                ans = ans + 0
            elif (s > n):
                ans = ans + 0
        elif (n*k < s):
            ans = ans + 0
        else:
            ans = ans + f(n-1,j,s-j)
    return ans

print f(10, 12, 70)
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?我需要改变什么?我不知道出了什么问题.请帮忙.谢谢!

python recursion sum

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

如何修复此ruby模板以修复生成的文件的格式?

我正在尝试使用puppet在我的系统上写一个文件,这是声明:

file { '/etc/salt/grains':
  ensure  => present,
  content => template('pp_salt_manager/grains.erb'),
}
Run Code Online (Sandbox Code Playgroud)

这是我真正的短.erb文件:

<% @machine_info.each do |key, value| %>
  <%= "#{key}: #{value}" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

作为参考,这是machine_info:

$machine_info = {'deployment' => 'c7', 'local' => 'US', 'env' => 'stable'}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是输出文件:

_ # Empty line
  deployment: c7
_ # Another empty line
  local: US
_ # Once again, an empty line
  env: stable
Run Code Online (Sandbox Code Playgroud)

我如何使它看起来像这样:

deployment: c7
local: US
env: stable
Run Code Online (Sandbox Code Playgroud)

提前致谢!

ruby puppet

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

为什么 Python 的 Decimal() 会稍微改变我传递给它的浮点数?

这更多是出于兴趣而提出的问题。在我天真的情况下,不知道到底Decimal()应该如何使用,我认为当我做类似的事情时它会工作得很好Decimal(120.24)。不过请看下面的代码:

>>> d = Decimal(120.24)
>>> d
Decimal('120.2399999999999948840923025272786617279052734375')
Run Code Online (Sandbox Code Playgroud)

我更改了代码的工作方式,以避免因此而出现的一些问题,但我的问题在于为什么会发生这种情况。我做了一些搜索,试图找到一个简单的答案,但大多数问题都是问如何使用这两种类型,而不是更一般的“为什么”问题。

所以,我的问题是:幕后发生了什么导致小数变得如此不准确?为什么它不直接显示为Decimal('120.24')

换句话说,为什么Python本身对待浮点数与小数不同?为什么浮动“不准确”?据我所知,在大多数其他语言中,浮点数精确到特定点。绝对超过小数点后两位。

作为参考,我使用的是 Python 3.6。

python floating-point

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