Как мне разобрать строку в float или int?

Разрешение файла в порядке (0777), но я думаю, что ваш на общем сервере, поэтому для корректного удаления файла используйте; 1. Создайте правильный путь к вашему файлу

// delete from folder
$filename = 'test.txt';
$ifile = '/newy/made/link/uploads/'. $filename; // this is the actual path to the file you want to delete.
unlink($_SERVER['DOCUMENT_ROOT'] .$ifile); // use server document root
// your file will be removed from the folder

. Этот небольшой код выполнит волшебство и удалит любой выбранный файл из любой папки, если будет создан фактический путь к файлу.

2056
задан Georgy 5 June 2019 в 15:20
поделиться

8 ответов

>>> a = "545.2222"
>>> float(a)
545.22220000000004
>>> int(float(a))
545
2431
ответ дан Harley Holcombe 6 June 2019 в 01:20
поделиться
  • 1
    Как примечание для будущих пользователей, необходимо будет создать шаблон у Мандрила, найденного под исходящим-> шаблонное меню с минимальным HTML следующим образом: < отделение mc:edit =" main" > </div> < отделение mc:edit =" footer" > </div> шаблонный краткий заголовок должен соответствовать Стационарный. Дополнительная информация о шаблонах может быть найдена здесь help.mandrill.com/entries/… – Treemonkey 7 December 2013 в 03:14

float("545.2222") и int(float("545.2222"))

16
ответ дан codelogic 6 June 2019 в 01:20
поделиться
def num(s):
    try:
        return int(s)
    except ValueError:
        return float(s)
486
ответ дан David Jones 6 June 2019 в 01:20
поделиться
float(x) if '.' in x else int(x)
75
ответ дан S.Lott 6 June 2019 в 01:20
поделиться

Вот другая интерпретация Вашего вопроса (подсказка: это неопределенно). Возможно, что Вы ищете что-то вроде этого:

def parseIntOrFloat( aString ):
    return eval( aString )

Это работает как это...

>>> parseIntOrFloat("545.2222")
545.22220000000004
>>> parseIntOrFloat("545")
545
<час>

Теоретически, существует инжекционная уязвимость. Строка могла, например, быть "import os; os.abort()". Без любого фона на том, куда строка прибывает из, однако, возможность является теоретическим предположением. Так как вопрос неопределенен, нисколько не ясно, существует ли эта уязвимость на самом деле или нет.

-10
ответ дан Peter Mortensen 6 June 2019 в 01:20
поделиться
  • 1
    CC, BCC для нескольких адрес электронной почты не работает – YumYumYum 15 January 2014 в 04:33

Пользователи codelogic и harley корректен, но имеет в виду, знаете ли Вы, что строка является целым числом (например, 545) можно назвать интервал ("545") без первого кастинга для плавания.

, Если Ваши строки находятся в списке, Вы могли бы использовать функцию карты также.

>>> x = ["545.0", "545.6", "999.2"]
>>> map(float, x)
[545.0, 545.60000000000002, 999.20000000000005]
>>>

только хорошо, если они являются всеми одинаковыми тип.

24
ответ дан Peter Mortensen 6 June 2019 в 01:20
поделиться

Это - функция, которая преобразует любой object (не всего str) к int или float, на основе того, если фактическая строка предоставила , похож int или float. Далее, если это - объект, который имеет и __float и __int__ методы, это принимает значение по умолчанию к использованию __float__

def conv_to_num(x, num_type='asis'):
    '''Converts an object to a number if possible.
    num_type: int, float, 'asis'
    Defaults to floating point in case of ambiguity.
    '''
    import numbers

    is_num, is_str, is_other = [False]*3

    if isinstance(x, numbers.Number):
        is_num = True
    elif isinstance(x, str):
        is_str = True

    is_other = not any([is_num, is_str])

    if is_num:
        res = x
    elif is_str:
        is_float, is_int, is_char = [False]*3
        try:
            res = float(x)
            if '.' in x:
                is_float = True
            else:
                is_int = True
        except ValueError:
            res = x
            is_char = True

    else:
        if num_type == 'asis':
            funcs = [int, float]
        else:
            funcs = [num_type]

        for func in funcs:
            try:
                res = func(x)
                break
            except TypeError:
                continue
        else:
            res = x
0
ответ дан 22 November 2019 в 19:59
поделиться

шестнадцатеричное число Дескрипторов, восьмеричное, двоичное, десятичное, и плавающее

, Это решение обработает все строковые конвенции для чисел (все, что я знаю о).

def to_number(n):
    ''' Convert any number representation to a number 
    This covers: float, decimal, hex, and octal numbers.
    '''

    try:
        return int(str(n), 0)
    except:
        try:
            # python 3 doesn't accept "010" as a valid octal.  You must use the
            # '0o' prefix
            return int('0o' + n, 0)
        except:
            return float(n)

Этот вывод тестового сценария иллюстрирует то, о чем я говорю.

======================== CAPTURED OUTPUT =========================
to_number(3735928559)   = 3735928559 == 3735928559
to_number("0xFEEDFACE") = 4277009102 == 4277009102
to_number("0x0")        =          0 ==          0
to_number(100)          =        100 ==        100
to_number("42")         =         42 ==         42
to_number(8)            =          8 ==          8
to_number("0o20")       =         16 ==         16
to_number("020")        =         16 ==         16
to_number(3.14)         =       3.14 ==       3.14
to_number("2.72")       =       2.72 ==       2.72
to_number("1e3")        =     1000.0 ==       1000
to_number(0.001)        =      0.001 ==      0.001
to_number("0xA")        =         10 ==         10
to_number("012")        =         10 ==         10
to_number("0o12")       =         10 ==         10
to_number("0b01010")    =         10 ==         10
to_number("10")         =         10 ==         10
to_number("10.0")       =       10.0 ==         10
to_number("1e1")        =       10.0 ==         10

Вот тест:

class test_to_number(unittest.TestCase):

    def test_hex(self):
        # All of the following should be converted to an integer
        #
        values = [

                 #          HEX
                 # ----------------------
                 # Input     |   Expected
                 # ----------------------
                (0xDEADBEEF  , 3735928559), # Hex
                ("0xFEEDFACE", 4277009102), # Hex
                ("0x0"       ,          0), # Hex

                 #        Decimals
                 # ----------------------
                 # Input     |   Expected
                 # ----------------------
                (100         ,        100), # Decimal
                ("42"        ,         42), # Decimal
            ]



        values += [
                 #        Octals
                 # ----------------------
                 # Input     |   Expected
                 # ----------------------
                (0o10        ,          8), # Octal
                ("0o20"      ,         16), # Octal
                ("020"       ,         16), # Octal
            ]


        values += [
                 #        Floats
                 # ----------------------
                 # Input     |   Expected
                 # ----------------------
                (3.14        ,       3.14), # Float
                ("2.72"      ,       2.72), # Float
                ("1e3"       ,       1000), # Float
                (1e-3        ,      0.001), # Float
            ]

        values += [
                 #        All ints
                 # ----------------------
                 # Input     |   Expected
                 # ----------------------
                ("0xA"       ,         10), 
                ("012"       ,         10), 
                ("0o12"      ,         10), 
                ("0b01010"   ,         10), 
                ("10"        ,         10), 
                ("10.0"      ,         10), 
                ("1e1"       ,         10), 
            ]

        for _input, expected in values:
            value = to_number(_input)

            if isinstance(_input, str):
                cmd = 'to_number("{}")'.format(_input)
            else:
                cmd = 'to_number({})'.format(_input)

            print("{:23} = {:10} == {:10}".format(cmd, value, expected))
            self.assertEqual(value, expected)
0
ответ дан 22 November 2019 в 19:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: