Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/88: Рейтинг темы: голосов - 88, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 12.11.2017
Сообщений: 4

Найти в списке пропущенное число

12.11.2017, 11:37. Показов 18129. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть задача, суть которой заключается в том, что есть перечень расположенных не по порядку чисел от двух до десяти но пропущено одно число, нужно найти это самое число. Реализация этой задачи выглядит так:
Python
1
2
3
4
5
6
allnumb = list(range(2, 11)) #Создаем список от 2 до 10.
numb = [2, 5, 9, 8, 3, 7, 4, 10] #Список чисел от 2 до 10, но без 1 числа.
a = sum(allnumb) #Складываем все значения списка чисел от 2 до 10.
b = sum(numb) #Складываем все значения списка чисел от 2 до 10, но без одного числа.
c = (a - b) 
print (c)
Но как решить эту задачу, если эта перечень чисел (от двух до десяти, но без одного числа) находиться в текстовом файле?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2017, 11:37
Ответы с готовыми решениями:

Наименьшее число в списке, наибольшее число в списке, количество чисел в списке
Составить программу, которая получает на вход последовательность целых чисел, и печатает на экране: наименьшее число в списке, наибольшее...

Вернуть наименьшее пропущенное положительное целое число
Учитывая несортированный целочисленный массив nums, вернуть наименьшее пропущенное положительное целое число. Вы должны реализовать...

Написать функцию, которе возвращает пропущенное число в строке
Написать функцию missing, которое возвращает пропущенное число в строке (последовательность, объединенная в одну строку без пробелов)....

4
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
12.11.2017, 16:44
Цитата Сообщение от Dimka_Barry Посмотреть сообщение
находиться в текстовом файле
а считать данные из файла что мешает? все зависит как перечень чисел записан в файле. для примера перечень записан в одной строке через пробел 2 5 9 8 3 7 4 10
Python
1
2
3
with open('test.txt') as f:
  print(sum(range(2,11)) - sum(list(map(int,f.read().split()))))
> 6
0
0 / 0 / 0
Регистрация: 12.11.2017
Сообщений: 4
16.11.2017, 00:39  [ТС]
Semen-Semenich, спасибо за помощь)))
Сначала перелопатил пол интернета чтобы понять как решить эту проблему, а потом понял что искал не то что нужно было.

Добавлено через 1 час 34 минуты
Простите, я начинающий программист, поэтому есть вопросы.
Подскажите пожалуйста, что не так с задачей.
Крестики нолики.
Входящие данные - текстовый файл, содержащий три строки, по три произвольно расположенных символа (x, o, .).
х - крестики
о - нолики
. - пустая клетка
Исходящие данные - Вывести х если победили крестики.
Вывести о если победили нолики.
Вывести . если игра не закончилась.
Вывести = если игра закончилась в ничью.
Вот код.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
my_file = open("ttt.txt")
enumerate(my_file, 1)
a = list(my_file.readline())
b = list(my_file.readline())
c = list(my_file.readline())
 
if a[0] == 'x' and a[1] == 'x' and a[2] == 'x':
    print("x")
elif a[0] == 'x' and b[0] == 'x' and c[0] == 'x':
    print("x")
elif a[0] == 'x' and b[1] == 'x' and c[2] == 'x':
    print("x")
elif a[2] == 'x' and b[1] == 'x' and c[0] == 'x':
    print("x")
elif a[1] == 'x' and b[1] == 'x' and c[1] == 'x':
    print("x")
elif a[2] == 'x' and b[2] == 'x' and c[2] == 'x':
    print("x")
elif b[0] == 'x' and b[1] == 'x' and b[2] == 'x':
    print("x")
elif c[0] == 'x' and c[1] == 'x' and c[2] == 'x':
    print("x")
elif a[0] == 'o' and a[1] == 'o' and a[2] == 'o':
    print("o")
elif a[0] == 'o' and b[0] == 'o' and c[0] == 'o':
    print("o")
elif a[0] == 'o' and b[1] == 'o' and c[2] == 'o':
    print("o")
elif a[2] == 'x' and b[1] == 'x' and c[0] == 'x':
    print("x")
elif a[1] == 'o' and b[1] == 'o' and c[1] == 'o':
    print("o")
elif a[2] == 'o' and b[2] == 'o' and c[2] == 'o':
    print("o")
elif b[0] == 'o' and b[1] == 'o' and b[2] == 'o':
    print("o")
elif c[0] == 'o' and c[1] == 'o' and c[2] == 'o':
    print("o")
elif a[0] == '.':
    print(".")
elif a[1] == '.':
    print(".")
elif a[2] == '.':
    print(".")
elif b[0] == '.':
    print(".")
elif b[1] == '.':
    print(".")
elif b[2] == '.':
    print(".")
elif c[0] == '.':
    print(".")
elif c[1] == '.':
    print(".")
elif c[2] == '.':
    print(".")
else:
    print("=")
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
16.11.2017, 18:26
enumerate(my_file, 1) а эта строчка для чего? я тоже только основы изучил но я бы сделал так чтобы не путаться с индексами и кучей elif
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
''' получаем данные из файла в список строк строками 
в результате список имеет элементы строки ['xxo', 'ooo', 'xx.']
где каждый элемент это строка из файла без пробелов ( или другого знака
разделения)'''
with open('test.txt') as f:
    data = [i.strip().replace(' ','') for i in f.readlines()]
    
left_diag = ''.join([x[i] for i,x in enumerate(data)])# строка из элементов левой диагонали
len_d = len(data)# получем длину списка data чтобы не вызывать  функцию len каждый раз
right_diag = ''.join([x[len_d-i] for i,x in enumerate(data)])# строка из элементов правой диагонали
list_coll = [''.join([data[j][i] for j in range(len_d)]) for i in range(len_d)]# список из строк элементов столбцов
 
''' собираю в один список чтобы обрабатывать все за один проход цикла'''
data.append(left_diag)# добавляю в список левую диагональ
data.append(right_diag)# добавляю в список правую диагональ
data += list_coll # прибавляю к списку элементы столбцы
 
'''  в результате из файла такого вида
х о х
х х о
. о о
в data у нас список из строк, диагоналей и столбцов
['хох', 'ххо', '.оо', 'ххо', 'хх.', 'хх.', 'охо', 'хоо']'''
 
res = '='
if '.' in ''.join(data):# проверяем если есть . игра не окончена
    res = '.'
else: # проверяем стобцы,строки,диагонали на  3 совпадения символов
    for i in data:
        if len(set(i)) == 1:# тут можно и через if i.count('о') == 3 or i.count('х') == 3:
            res = i[0]
            break
print(res)
Добавлено через 5 часов 10 минут
не было времени сразу редактировать ошибку
10 строка должна быть так right_diag = ''.join([x[(len_d-1)-i] for i,x in enumerate(data)])
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
17.11.2017, 09:29
Цитата Сообщение от Dimka_Barry Посмотреть сообщение
х - крестики
о - нолики
. - пустая клетка
преобразуйте к виду o -> +1,x -> -1,. -> 0
Python
1
2
3
4
5
6
>>> indx = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]
>>> from random import randint
>>> board = [randint(-1,1) for i in range(10)]
>>> for i in indx: print (sum([board[i[0]],board[i[1]],board[i[2]]]),end=' ')
 
0 2 -1 1 -2 2 0 1
условие выигрыша - +3/-3

Добавлено через 1 час 11 минут
Цитата Сообщение от Dimka_Barry Посмотреть сообщение
Входящие данные - текстовый файл, содержащий три строки, по три произвольно расположенных символа (x, o, .).
Python
1
2
3
4
5
6
7
d= {}
d['x'] = 1
d['o'] = -1
d['.'] = 0 
with open('file.txt') as f:
    s = f.read()
    board = [ d[i] for i in s if i in d]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2017, 09:29
Помогаю со студенческими работами здесь

Найти пропущенное число
Добрый день В таблице при создании записи автоматически увеличивается номер документа на 1 исходя из максимального. Но если документ...

Узнать пропущенное число в массиве
Всем доброго времени суток ! Есть Клиент , есть Мастер сервер ! Пишем программу-аналог клиента ! так как нету исходников...

Найдите пропущенное число в числовом ряду
1,\frac{5}{2},\frac{14}{3},\frac{15}{2},11,\frac{91}{6},?,\frac{51}{2},\frac{95}{3},\frac{77}{2}\ . . .

Вывести наименьшее число пропущенное в последовательности
Вводится последовательность из К натуральных чисел. Необходимо вывести наименьшее число, отсутствующего в последовательности. То есть,...

Массив: Найдите наименьшее пропущенное положительное число
Задание 2: Дан неотсортированный массив чисел. Найдите наименьшее пропущенное положительное число. Пример 1: Входные данные: Выходные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru