Списки-строки-числа

Статус
Закрыто для дальнейших ответов.

АлексХотянович

Новичок
Пользователь
Авг 29, 2023
6
0
1
Приветствую, уважаемая аудитория!
Расскажите пожалуйста как их переменной со значениями: 285 279 265 258 250 253 256 248 247 233 235 222 217 206 199 203 188 176 163 163
(в процессе работы программы выбирается эта часть из строки)
получить числа 285 и 279 и 265 и так далее?
Я так понимаю, что нужна запятая после каждого числа и тогда можно каждое число считывать как ЧИСЛО.

Спасибо!
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 491
440
83
можно так
Python:
s = "285 279 265 258 250 253 256 248 247 233 235 222 217 206 199 203 188 176 163 163"
ss = s.split()
for i in ss:
    print(i)
 
  • Мне нравится
Реакции: Student

АлексХотянович

Новичок
Пользователь
Авг 29, 2023
6
0
1
Ну, вы, волшебник, однако!
Большое спасибо!
 

АлексХотянович

Новичок
Пользователь
Авг 29, 2023
6
0
1
Друзья!
Добрый день!
В развитие данной темы обращаюсь к вам за ответом вот на такой вопрос.
Две строки g1 и g2.
Нужно вычислить модуль разности каждой пары: 285 и 265; 279 и 262; ...; 163 и 0.
И есть условие, что если в g2 встречается НОЛЬ, тогда g2I принимает значение g1I и модуль разности равен НУЛЮ.
Приведенный ниже код работает, но не так, как надо.

Спасибо.

Python:
g1="285 279 265 258 250 253 256 248 247 233 235 222 217 206 199 203 188 176 163 163"
g2="265 262 257 248 243 239 239 236 230 230 228 215 210 203 198 196 187 174 167 0"

g1S=g1.split()
for i1 in g1S:
    g1I=int(i1)

    g2S = g2.split()
    for i2 in g2S:
        g2I=int(i2)
        g12=abs(g1I-g2I)
        print(str(g1I)+str("-")+str(g2I)+str(" = ")+str(g12))
 

PYDEV

Новичок
Пользователь
Авг 31, 2023
10
1
3
Друзья!
Добрый день!
В развитие данной темы обращаюсь к вам за ответом вот на такой вопрос.
Две строки g1 и g2.
Нужно вычислить модуль разности каждой пары: 285 и 265; 279 и 262; ...; 163 и 0.
И есть условие, что если в g2 встречается НОЛЬ, тогда g2I принимает значение g1I и модуль разности равен НУЛЮ.
Приведенный ниже код работает, но не так, как надо.

Спасибо.

Python:
g1="285 279 265 258 250 253 256 248 247 233 235 222 217 206 199 203 188 176 163 163"
g2="265 262 257 248 243 239 239 236 230 230 228 215 210 203 198 196 187 174 167 0"

g1S=g1.split()
for i1 in g1S:
    g1I=int(i1)

    g2S = g2.split()
    for i2 in g2S:
        g2I=int(i2)
        g12=abs(g1I-g2I)
        print(str(g1I)+str("-")+str(g2I)+str(" = ")+str(g12))
Ваш вопрос непонятен. Исходя из описания пришло в голову что-то такое:
Python:
g1 = "285 279 265 258 250 253 256 248 247 233 235 222 217 206 199 203 188 176 163 163"
g2 = "265 262 257 248 243 239 239 236 230 230 228 215 210 203 198 196 187 174 167 0"

g1S = g1.split()
g2S = g2.split()

for g1I, g2I in zip(g1S, g2S):
    num1 = int(g1I)
    num2 = int(g2I)
   
    if num2 == 0:
        num2 = num1
        diff = 0
    else:
        diff = abs(num1 - num2)
   
    print(f"{num1} - {num2} = {diff}")
 

АлексХотянович

Новичок
Пользователь
Авг 29, 2023
6
0
1
Здравствуйте!
Все работает волшебно!
Немало новых интересных строк в вашем ответе!

Буду разбираться!

Большое спасибо!
 

АлексХотянович

Новичок
Пользователь
Авг 29, 2023
6
0
1
Друзья, здравствуйте!
Вот хожу вокруг задачи, совершил тыщу попыток, а решения нет.

Есть строка
g2S= ['130', '150', '250', '350', '404', '50', '150', '250', '350', '403', '50', '150', '250', '350', '404', '50', '150', '250', '350', '404', '130', '150', '250', '350', '403', '50', '150', '250', '350', '404', '50', '150', '250', '350', '403', '50', '150', '250', '350', '450', '550', '605', '50', '150', '250', '350', '404', '50']
<class 'list'>
Есть еще одна строка
g1S=['285', '279', '265', '258', '250', '253', '256', '248', '247', '233', '235', '222', '217', '206', '199', '203', '188', '176', '163', '163', '184', '183', '160', '167', '157', '153', '137', '133', '126', '126', '118', '113', '108', '98', '85', '389', '375', '371', '364', '358', '353', '348', '325', '323', '328', '298', '289']
<class 'list'>

Этап 1.
в gS2 определить индексы чисел, которые стоят сразу перед числами 130 и 50 (самое первое значение 130 в расчет не принимается).

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

Результат записать в виде строки с именем gS3.

Вот такая задача!
Надеюсь на вашу помощь!

Спасибо!
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 491
440
83
Друзья, здравствуйте!
Вот хожу вокруг задачи, совершил тыщу попыток, а решения нет.

Есть строка
g2S= ['130', '150', '250', '350', '404', '50', '150', '250', '350', '403', '50', '150', '250', '350', '404', '50', '150', '250', '350', '404', '130', '150', '250', '350', '403', '50', '150', '250', '350', '404', '50', '150', '250', '350', '403', '50', '150', '250', '350', '450', '550', '605', '50', '150', '250', '350', '404', '50']
<class 'list'>
Есть еще одна строка
g1S=['285', '279', '265', '258', '250', '253', '256', '248', '247', '233', '235', '222', '217', '206', '199', '203', '188', '176', '163', '163', '184', '183', '160', '167', '157', '153', '137', '133', '126', '126', '118', '113', '108', '98', '85', '389', '375', '371', '364', '358', '353', '348', '325', '323', '328', '298', '289']
<class 'list'>

Этап 1.
в gS2 определить индексы чисел, которые стоят сразу перед числами 130 и 50 (самое первое значение 130 в расчет не принимается).

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

Результат записать в виде строки с именем gS3.

Вот такая задача!
Надеюсь на вашу помощь!

Спасибо!
функция enumerate вам поможет
для нового вопроса создайте отдельную тему
 
  • Мне нравится
Реакции: Student
Статус
Закрыто для дальнейших ответов.

Форум IT Специалистов