相关疑难解决方法(0)

如何避免编写request.GET.get()两次才能打印出来?

我来自PHP背景,想知道是否有办法在Python中执行此操作.

在PHP中你可以像这样用一块石头杀死2只鸟:

代替:

if(getData()){
    $data = getData();
    echo $data;
}
Run Code Online (Sandbox Code Playgroud)

我可以做这个:

if($data = getData()){
    echo $data;
}
Run Code Online (Sandbox Code Playgroud)

您检查是否getData()存在,如果存在,则将其分配给一个语句中的变量.

我想知道在Python中是否有办法做到这一点?所以不要这样做:

if request.GET.get('q'):
    q = request.GET.get('q')
    print q
Run Code Online (Sandbox Code Playgroud)

避免写request.GET.get('q')两次.

python dictionary if-statement

41
推荐指数
3
解决办法
3万
查看次数

如何在python中使用while(i = getNext())模式

在C++中,我经常使用以下模式:

while (int i = getNextElementPlease()) {
    printf("%d\n", i);
}
Run Code Online (Sandbox Code Playgroud)

但是在python中我必须重复两次调用:

i = getNextElementPlease()
while (i):
    print(i)
    i = getNextElementPlease()
Run Code Online (Sandbox Code Playgroud)

如何避免重复getNextElementPlease

python

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

PHP 中是否有 Walrus 运算符?

Python3.8 中有一个名为 walrus ( :=) 的新运算符,它可以在条件内分配新变量。我用 PHP 编写了一个简单的 TCP 套接字连接,我希望我的程序看起来更好。

PHP: Hypertext Preprocessor 中是否有类似的东西?

if ($data := socket_read ($socket, 1024)) {
     echo $data;
}
Run Code Online (Sandbox Code Playgroud)

php

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

我们不能在python中执行if(y = Foo())> 2的操作吗?

我是python的新手.在C/C++中,在while或if语句中,我经常进行变量赋值.以下是C++中的一个简单示例代码:

#include <iostream>

int Increment(const int x) {
  return (x + 1); 
}

int main(void) {
  int x = 2, y;
  while ((y = Increment(x)) > 2) {
    std::cout << "y is larger than 2" << std::endl;
  }

  return (0);
}
Run Code Online (Sandbox Code Playgroud)

但是以下python代码不起作用:

#!/usr/bin/python

def Increment(x):
  return x + 1

def main():
  x= 2
  while (y = Increment(x)) > 2:
    print "y is larger than 2"

if __name__ == "__main__"
  main()
Run Code Online (Sandbox Code Playgroud)

错误消息如下:

   while (y = Increment(x)) > 2:
          ^
SyntaxError: invalid …
Run Code Online (Sandbox Code Playgroud)

python variable-assignment conditional-statements

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

为什么在python中的while条件中不允许复杂的算术运算

此函数查找数字中的位数

def getNumOfDigits(i):
    num = i
    count = 1
    num = num // 10
    while num != 0:
        count += 1
        num //= 10
    return count
Run Code Online (Sandbox Code Playgroud)

如果我尝试修改while条件以将num除以10并检查它是否不等于0则会引发语法错误.为什么在python中这样呢?

def getNumOfDigits(i):
num = i
count = 1
while (num //= 10)!= 0:
    count += 1
return count
Run Code Online (Sandbox Code Playgroud)

python

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