Python 有没有办法在单行if语句中递增计数器?

Python 有没有办法在单行if语句中递增计数器?,python,python-3.x,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))

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

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)
def alpha_1(x):
#num=5
计数器=65
out=[]
对于范围内的i(len(x)):
如果x.isalpha():
num=ord(x[i])
out.append(chr(num+1,如果65
你是说像这样的


这将在语句为true时向计数器添加5,在语句为false时向计数器添加0。python中的整数是不可变的,这意味着更改某些变量(如计数器)指向的值的唯一方法是重新分配它

counter = 5 
counter = counter + 5  # tadaa!
这是没有办法的,赋值也是,这意味着你不能用它们作为某些东西的值(比如
if
语句)

在Python 3.8出现之前,您将无法执行单行if语句并更改值,这时专用的语句将成为语言的一部分,这将完全满足您的需要:

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


但是,除非您想在本地使用,否则您必须等到开始使用它。

您是在询问如何在if语句中增加变量吗?请指定您的问题,但如果您希望使用缩写if->
x=10 if->b else 11
只需使用完整的if语句,不要使用条件表达式,这是故意限制在w中的你能做什么。你应该让条件表达式可读并且没有副作用。EA,我将使用完整的“如果”,只是想知道是否可以用这种方式实现,Np..谢谢大家!!我对此感到厌倦,但它的抛出错误是:
out.append(chr(num+1 counter+=5 if 65)你正在运行什么python版本?
if (counter := (counter + 5)) > something_else:
    # do something, also counter is now 5 bigger than before