有没有办法在if语句的一行中增加计数器?

时间:2019-03-26 07:34:28

标签: python python-3.x

我创建了这个简单的函数:

def alpha_1(x):
    #num = 5
    counter = 65
    out = []
    for i in range(len(x)):
        if x.isalpha():
            num = ord(x[i])
            out.append(chr(num+1 if 65 <= num <= 89 or 97 <= num <= 121 else counter))
        else:
            print("Not a character!")
            return 0
    return "".join(out)

在这里,当某些值到达{if {1}}的单行“ if语句”时,我需要增加计数器,以便对于不属于指定范围的值,我不会得到相同的'A'范围。我知道可以使用常规的“ if”语句来实现。

我只想知道在单行语句中有什么方法可以实现这一目标?

2 个答案:

答案 0 :(得分:1)

createAuthrorizationHeader(): HttpHeaders {

    let headers = new HttpHeaders();
    const token = localStorage.getItem('access_token');
    headers = headers.set('access_token', token);
    return headers
  }

insert(product_data: any) {

    let headers = this.createAuthrorizationHeader();
    console.log(headers);
    return this.httpClient.post("/seller/add", product_data, { headers: headers })
      .pipe(tap(res => {
        console.log(res);
      }))
  }

您的意思是这样的吗?

如果语句为true,则计数器加5;如果语句为false,计数器加0。

答案 1 :(得分:1)

python中的整数是不可变的,这意味着更改像counter这样的变量所指向的值的唯一方法是重新分配它。

counter = 5 
counter = counter + 5  # tadaa!

没有办法解决,分配是statements,这意味着您不能将它们用作某物的值(例如if语句)。

在Python 3.8出现之前,您将无法做一行陈述和更改值,那时专用的assignment expression将成为该语言的一部分,这将允许你想要什么:

if (counter := (counter + 5)) > something_else:
    # do something, also counter is now 5 bigger than before

但是除非您想在本地build the current cpython master,否则必须等到21.10.2019开始使用它。