Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как заменить два левых разряда в Питоне, программируя с нуля?

  1. Как заменить два левых разряда в Питоне, программируя с нуля?

    Народ, привет! Помогите разобраться с одной штукой в Питоне. Хочу заменить два левых (старших) разряда в числе, и что-то уже третий час голову ломаю - нифига не получается. Пробовал разные методы, но всё не то. Может быть, кто подскажет рабочий вариант? Пример кода или алгоритм буду дико приветствовать. Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Эй, привет! Чтобы заменить два левых разряда в числе в Питоне, можно воспользоваться строковой обработкой. Вот пример на коленке:
    Программный код:
    def replace_digits(numbernew_digits):
        
    str_num str(number)
        
    new_str_num new_digits str_num[2:]
        return 
    int(new_str_num)
    print(
    replace_digits(123456'76'))  # Вывод: 76456 
    Надеюсь, это поможет!

  4. Цитата Сообщение от Batman
    Эй, привет! Чтобы заменить два левых разряда в числе в Питоне, можно воспользоваться строковой обработкой. Вот пример на коленке:
    Программный код:
    def replace_digits(numbernew_digits):
        
    str_num str(number)
        
    new_str_num new_digits str_num[2:]
        return 
    int(new_str_num)
    print(
    replace_digits(123456'76'))  # Вывод: 76456 
    Надеюсь, это поможет!
    О, прикольно! А если я работаю с float, как тогда быть? Этот метод прокатит?

  5. Я бы ещё предложил использовать целочисленное деление и остаток. Можешь воспользоваться формулой:
    Программный код:
    def replace_digits(numbernew_left):
        
    exponent len(str(number)) - 2
        
    return int(new_left) * 10**exponent number 10**exponent
    print(replace_digits(12345645))  # Вывод: 453456 
    Как по мне, так норм вариация)

  6. Цитата Сообщение от Alex Zin
    Я бы ещё предложил использовать целочисленное деление и остаток. Можешь воспользоваться формулой:
    Программный код:
    def replace_digits(numbernew_left):
        
    exponent len(str(number)) - 2
        
    return int(new_left) * 10**exponent number 10**exponent
    print(replace_digits(12345645))  # Вывод: 453456 
    Как по мне, так норм вариация)
    Ну, видишь тут нюанс, со строками проще работать в плане универсальности, а так - годится.

  7. Я работал со строками, но вот пример с форматированием числа через f-строку:
    Программный код:
    def replace_digits(numbernew_digits):
        
    new_num int(f"{new_digits}{str(number)[2:]}")
        return 
    new_num
    print(replace_digits(1357942))  # Вывод: 42579 
    Легко и просто, надеюсь пригодится!

  8. Цитата Сообщение от Близнец
    Я работал со строками, но вот пример с форматированием числа через f-строку:
    Программный код:
    def replace_digits(numbernew_digits):
        
    new_num int(f"{new_digits}{str(number)[2:]}")
        return 
    new_num
    print(replace_digits(1357942))  # Вывод: 42579 
    Легко и просто, надеюсь пригодится!
    Ага, а что если старые разряды короче двух символов будут? Как это обработать?

  9. Чувак, я тут нашёл способ через побитовые операции. Сложнее, но вдруг тебе понравится:
    Программный код:
    def replace_leftmost_digits(numbernew_digits):
        
    old_digits_length len(str(number)) - len(new_digits)
        
    shifted_number int(new_digits '0' old_digits_length)
        
    remaining number % (10 ** old_digits_length)
        return 
    shifted_number remaining
    print(replace_leftmost_digits(98765'12'))  # Вывод: 12765 
    Попробуй, вдруг зайдёт.

  10. Цитата Сообщение от NeoSurvivor538
    Чувак, я тут нашёл способ через побитовые операции. Сложнее, но вдруг тебе понравится:
    Программный код:
    def replace_leftmost_digits(numbernew_digits):
        
    old_digits_length len(str(number)) - len(new_digits)
        
    shifted_number int(new_digits '0' old_digits_length)
        
    remaining number % (10 ** old_digits_length)
        return 
    shifted_number remaining
    print(replace_leftmost_digits(98765'12'))  # Вывод: 12765 
    Попробуй, вдруг зайдёт.
    Не, ну это уже продвинутое решение! Может на практике оказаться полезным, если до конца разобраться.

Страница 1 из 2 12 ПоследняяПоследняя