如何在python中将变量更改为字符串?

2024-09-30 10:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想用一个函数把一个随机变量变成一个字符串,你知道为什么这不起作用吗?你知道吗

def letter(x):
    if x == 1:
            x = "A"
    elif x == 2:
            x = "C"
    elif x == 3:
            x = "G"
    elif x == 4:
            x = "T"
    else:
            print "Error" 
randint18= random.randrange(1,5)
letter(randint18)
print randint18 `

Tags: 函数字符串ifdefrandomerrorelseprint
3条回答

不能就地更改变量,必须返回变量并捕获返回值。你知道吗

import random

def letter(x):
    if x == 1:
            x = "A"
    elif x == 2:
            x = "C"
    elif x == 3:
            x = "G"
    elif x == 4:
            x = "T"
    else:
        print "Error" 
    return x  # return it here

randint18= random.randrange(1,5)
randint18 = letter(randint18)  # capture the returned value here 
print randint18

有一个更简单的方法来实现您想要的,使用字典映射值。你知道吗

import random

def letter(x):
    mapd = {1:'A', 2:'C', 3:'G', 4:'T'}
    return mapd.get(x, None)

randint18= random.randrange(1,5)
randint18 = letter(randint18)
print randint18

我的不是一个正确的答案,这已经提供了,但一个改进您的代码的建议。我会在评论中这样做,但代码格式不够好。你知道吗

为什么不使用字典来进行映射,而不是一系列的if?如果您愿意,也可以将其放置在函数中:

letter = {1:'A', 2:'C', 3:'G', 4:'T'}
randint18 = random.randrange(1,5)
mapping = letter.get(randint18, 'Error')
print mapping

请注意,如果映射从零开始,列表将更加有效:

letter = ['A', 'C', 'G', 'T']
randint18 = random.randrange(0,4)
try: # in case your random index were allowed to go past 3
 mapping = letter[randint18]
except IndexError:
 mapping = 'Error'
print mapping

必须从函数返回值,并将其赋给变量。你知道吗

def letter(x):
    ...
    return x


randint18 = random.randrange(1, 5)
result = letter(randint18)
print result

相关问题 更多 >

    热门问题