Python - Преобразование префиксов (килограмм и т. Д. c) в базовый номер - PullRequest
1 голос
/ 13 апреля 2020

У меня есть числа, которые заканчиваются на к значении е ^ 3. Я написал функцию, чтобы попытаться решить эту проблему:

def prefixFinder(in1, out1):

if in1.endswith('k'):
    in1 = in1[:-1]              # Remove k from the end
    out1 = float(in1) * 1000    # Multiply by 100

    print(out1)

    return out1                 # Return out1

Когда я вызываю функцию с помощью x (Хотите заменить текущее значение x, '10k' на 10000.0

x = '10k'

prefixFinder(x, x)

print(x)

Вывод, который я получаю, - '10k'. Но print(out1) в функции - 10000.0, что правильно.

Я не уверен, что я сделал неправильно, и любая помощь сильно оценена

Ответы [ 3 ]

2 голосов
/ 13 апреля 2020

Наши аргументы, подобные аргументам в C или C#, не существуют в Python, вы должны вернуть их:

def prefixFinder(i):

    if in1.endswith('k'):
        i = i[:-1]               # Remove k from the end
        return float(i) * 1000   # Multiply by 100 

И затем использовать их так:

x = '10k'
x = prefixFinder(x)
print(x)
1 голос
/ 13 апреля 2020

Вам нужно ввести только (x='10k') для создания функции и после того, как вам нужно будет вернуть результат.

def prefixFinder(x):

    if x.endswith('k'):
        x = x[:-1]               
        return float(x) * 1000        

y = '10k'
y = prefixFinder(y)
print(y)

В этом случае результат будет:

10000.0

Вы также можете назначить возврат переменной:

def prefixFinder(x):

    if x.endswith('k'):
        x = x[:-1]
        out = float(x) * 1000               
        return  out     

y = '10k'
y = prefixFinder(y)
print(y)
1 голос
/ 13 апреля 2020

Вам не нужно передавать out1 параметр в вашу функцию. Просто сделай:

def prefixFinder(in1):
    if in1.endswith('k'):
        in1 = in1[:-1]              # Remove k from the end
        out = float(in1) * 1000    # Multiply by 100
        print(out)
        return out 
x = "10k"
x = prefixFinder(x)
print(x)   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...