Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242

Как брать числа из списка .txt и сохранение в другой .txt ?

08.02.2020, 20:13. Показов 2337. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую Всех Друзья! Не силен в Пайтоне, но нужно изменить код.
В этом скрипте есть формула где в начале задаются числы x1 и x2 в самом коде, а мне необходимо изменить код чтобы значение x1 брались из списка заранее подготовленного текстового документа

Например из документа: 'List.txt'

Список чисел:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
4
2
15
6
8
13
3
12
5
10
7
14
9
11


Код: (Работает на Python 2.7)


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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import sys
 
a=0
b=7
p=37
 
x1=6
x2=8
 
if (len(sys.argv)>1):
    x1=int(sys.argv[1])
if (len(sys.argv)>2):
    x2=int(sys.argv[2])
if (len(sys.argv)>3):
    p=int(sys.argv[3])
if (len(sys.argv)>4):
    a=int(sys.argv[4])
if (len(sys.argv)>5):
    b=int(sys.argv[5])
 
 
def modular_sqrt(a, p):
    """ Find a quadratic residue (mod p) of 'a'. p
        must be an odd prime.
 
        Solve the congruence of the form:
            x^2 = a (mod p)
        And returns x. Note that p - x is also a root.
 
        0 is returned is no square root exists for
        these a and p.
 
        The Tonelli-Shanks algorithm is used (except
        for some simple cases in which the solution
        is known from an identity). This algorithm
        runs in polynomial time (unless the
        generalized Riemann hypothesis is false).
    """
    # Simple cases
    #
 
    if legendre_symbol(a, p) != 1:
        return 0
    elif a == 0:
        return 0
    elif p == 2:
        return p
    elif p % 4 == 3:
        return pow(a, (p + 1) / 4, p)
 
    # Partition p-1 to s * 2^e for an odd s (i.e.
    # reduce all the powers of 2 from p-1)
    #
    s = p - 1
    e = 0
    while s % 2 == 0:
        s /= 2
        e += 1
 
    # Find some 'n' with a legendre symbol n|p = -1.
    # Shouldn't take long.
    #
    n = 2
    while legendre_symbol(n, p) != -1:
        n += 1
 
    x = pow(a, (s + 1) / 2, p)
    b = pow(a, s, p)
    g = pow(n, s, p)
    r = e
 
    while True:
        t = b
        m = 0
        for m in xrange(r):
            if t == 1:
                break
            t = pow(t, 2, p)
 
        if m == 0:
            return x
 
        gs = pow(g, 2 ** (r - m - 1), p)
        g = (gs * gs) % p
        x = (x * gs) % p
        b = (b * g) % p
        r = m
 
 
def legendre_symbol(a, p):
    """ Compute the Legendre symbol a|p using
        Euler's criterion. p is a prime, a is
        relatively prime to p (if p divides
        a, then a|p = 0)
 
 
        Returns 1 if a has a square root modulo
        p, -1 otherwise.
    """
    ls = pow(a, (p - 1) / 2, p)
    return -1 if ls == p - 1 else ls
 
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)
 
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        print ("x")
    else: 
       return x % m
 
 
print "a=",a
print "b=",b
print "p=",p
 
print "x-point=",x1
print "x-point=",x2
 
 
z=(x1**3 + a*x1 +b) % p
y1=modular_sqrt(z, p)
 
z=(x2**3 + a*x2 +b) % p
y2=modular_sqrt(z, p)
 
print "\nP1\t(%d,%d)" % (x1,y1)
print "P2\t(%d,%d)" % (x2,y2)
 
 
 
s=((-y2)-y1)* modinv(x2-x1,p) 
 
x3=(s**2-x2-x1) % p
 
y3=((s*(x2-x3)+y2)) % p
 
result =  "Q\t(%d,%d)" % (x3,y3)
f = open('Result01.txt', 'w')
f.write(result)
f.close()

Ранее я видел скрипты где числы берутся из одного текстового документа выполняют функцию и результат сохраняют в другой текстовый документ. Заранее Благодарю за Помощь!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2020, 20:13
Ответы с готовыми решениями:

Как брать данные из списка .txt и сохранить результат в другом .txt?
Приветствую Всех! Я плохо знаю язык пайтона, но мне нужно изменить этот код: import hashlib import base58 pubkey =...

Сортировка списка txt в другой txt
Допусти у нас есть файл в котором список email и моб телефонов , как отсортировать все телефоны в другой txt ... Если не сложно напишите...

Как брать строку из списка txt и вводить её в заданое поле
Хотел бы поинтересоватся как брать строку из списка txt и вводить её в заданое поле. На пример есть у меня список: логин,пароль ...

9
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242
09.02.2020, 13:47  [ТС]
Цитата Сообщение от DewCooper Посмотреть сообщение
Python
То есть получается мне нужно вписать with open("List.txt'","r") as f: в место значение x1=6 в коде. Но как это систематизировать ? Просто не очень богат знанием Python.
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
09.02.2020, 14:31
Python
1
2
3
4
5
6
7
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
print(data)
 
for x in data:
    # используете вашу х
    print(x)
0
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242
09.02.2020, 14:57  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
Python
Я сделал как вы сказали вставил эту функцию:

Почему-то из списка берется только последнее значение и сохраняется в документ: 'Result01.txt'

То есть мне необходима чтобы скрипт обработал все значения из документа 'List.txt' и сохранил результат в документ 'Result01.txt'

Semen-Semenich я думаю что в конце кода что-то не прописано или лишнее?

Code
1
2
3
f = open('Result01.txt', 'w')
f.write(result)
f.close()
Весь код : Здесь я редактировал и вставил вашу функцию ( Python 2.7 )

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import sys
 
a=0
b=7
p=37
 
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
print(data)
 
for x1 in data:
    # используете вашу х
    print(x1)
x2=8
 
if (len(sys.argv)>1):
    x1=int(sys.argv[1])
if (len(sys.argv)>2):
    x2=int(sys.argv[2])
if (len(sys.argv)>3):
    p=int(sys.argv[3])
if (len(sys.argv)>4):
    a=int(sys.argv[4])
if (len(sys.argv)>5):
    b=int(sys.argv[5])
 
 
def modular_sqrt(a, p):
    """ Find a quadratic residue (mod p) of 'a'. p
        must be an odd prime.
 
        Solve the congruence of the form:
            x^2 = a (mod p)
        And returns x. Note that p - x is also a root.
 
        0 is returned is no square root exists for
        these a and p.
 
        The Tonelli-Shanks algorithm is used (except
        for some simple cases in which the solution
        is known from an identity). This algorithm
        runs in polynomial time (unless the
        generalized Riemann hypothesis is false).
    """
    # Simple cases
    #
 
    if legendre_symbol(a, p) != 1:
        return 0
    elif a == 0:
        return 0
    elif p == 2:
        return p
    elif p % 4 == 3:
        return pow(a, (p + 1) / 4, p)
 
    # Partition p-1 to s * 2^e for an odd s (i.e.
    # reduce all the powers of 2 from p-1)
    #
    s = p - 1
    e = 0
    while s % 2 == 0:
        s /= 2
        e += 1
 
    # Find some 'n' with a legendre symbol n|p = -1.
    # Shouldn't take long.
    #
    n = 2
    while legendre_symbol(n, p) != -1:
        n += 1
 
    x = pow(a, (s + 1) / 2, p)
    b = pow(a, s, p)
    g = pow(n, s, p)
    r = e
 
    while True:
        t = b
        m = 0
        for m in xrange(r):
            if t == 1:
                break
            t = pow(t, 2, p)
 
        if m == 0:
            return x
 
        gs = pow(g, 2 ** (r - m - 1), p)
        g = (gs * gs) % p
        x = (x * gs) % p
        b = (b * g) % p
        r = m
 
 
def legendre_symbol(a, p):
    """ Compute the Legendre symbol a|p using
        Euler's criterion. p is a prime, a is
        relatively prime to p (if p divides
        a, then a|p = 0)
 
 
        Returns 1 if a has a square root modulo
        p, -1 otherwise.
    """
    ls = pow(a, (p - 1) / 2, p)
    return -1 if ls == p - 1 else ls
 
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)
 
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        print ("x")
    else: 
       return x % m
 
 
print "a=",a
print "b=",b
print "p=",p
 
print "x-point=",x1
print "x-point=",x2
 
 
z=(x1**3 + a*x1 +b) % p
y1=modular_sqrt(z, p)
 
z=(x2**3 + a*x2 +b) % p
y2=modular_sqrt(z, p)
 
print "\nP1\t(%d,%d)" % (x1,y1)
print "P2\t(%d,%d)" % (x2,y2)
 
 
 
s=((-y2)-y1)* modinv(x2-x1,p) 
 
x3=(s**2-x2-x1) % p
 
y3=((s*(x2-x3)+y2)) % p
 
result =  "Q\t(%d,%d)" % (x3,y3)
f = open('Result01.txt', 'w')
f.write(result)
f.close()
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
09.02.2020, 15:14
и что толку что вставили, надо же понимать как и для чего использовать. вы же следом переопределяете х1
Python
1
2
3
4
5
6
7
for x1 in data:
    # используете вашу х
    print(x1)
x2=8
 
if (len(sys.argv)>1):
    x1=int(sys.argv[1])
и даже если не переопределяете то далее в коде используете последнее значение х1. все должно выполняться в цикле когда х1 принимает разное значение. вот пример
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def fun1(x):
    return x ** 2
 
def fun2(x,y):
    return x+y
 
 
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
 
result = []
 
for x in data:
    x1 = fun1(x)
    y = fun1(x1)
    y1  = fun2(x1, y)
    result.append(y1)
    
print(result)
0
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242
09.02.2020, 18:49  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
Python
Semen-Semenich Я так и не разобрался что нужно изменить в коде?
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
09.02.2020, 19:43
я вообще не понял что вы делаете. я вам показал как последовательно брать число для использования в коде

Python
1
2
3
4
5
6
7
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
 
for x in data:
    # тут в блоке цикла весь ваш код где вы работаете
    #  с текущим значением х, вы не задаете х в коде он уже определен из файла
    # и так для каждого х будет выполняться весь код столько раз сколько в файле чисел для х
увы объяснить что то больше я вам не смогу. может объясните суть задания так проще будет что то понять
0
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242
09.02.2020, 20:11  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
может объясните суть задания так проще будет что то понять
Вот есть список файла 'List.txt'

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
4
2
15
8
13
3
12
5
10
7
11
9
14
6

Мне необходимо чтобы ваша функция последовательно брала каждое число обрабатывала и записывала в файл: Result01.txt

На данный момент ваша функция берет только последнее число, а остальные пролетают(( Почему я не пойму?

Я вставил вашу функцию в код запускаю, : но в результате из списка x1 берет только последнюю значению то есть число 6


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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import sys
 
a=0
b=7
p=37
 
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
 
for x1 in data:
    x2=8
 
if (len(sys.argv)>1):
    x1=int(sys.argv[1])
if (len(sys.argv)>2):
    x2=int(sys.argv[2])
if (len(sys.argv)>3):
    p=int(sys.argv[3])
if (len(sys.argv)>4):
    a=int(sys.argv[4])
if (len(sys.argv)>5):
    b=int(sys.argv[5])
 
 
def modular_sqrt(a, p):
    """ Find a quadratic residue (mod p) of 'a'. p
        must be an odd prime.
 
        Solve the congruence of the form:
            x^2 = a (mod p)
        And returns x. Note that p - x is also a root.
 
        0 is returned is no square root exists for
        these a and p.
 
        The Tonelli-Shanks algorithm is used (except
        for some simple cases in which the solution
        is known from an identity). This algorithm
        runs in polynomial time (unless the
        generalized Riemann hypothesis is false).
    """
    # Simple cases
    #
 
    if legendre_symbol(a, p) != 1:
        return 0
    elif a == 0:
        return 0
    elif p == 2:
        return p
    elif p % 4 == 3:
        return pow(a, (p + 1) / 4, p)
 
    # Partition p-1 to s * 2^e for an odd s (i.e.
    # reduce all the powers of 2 from p-1)
    #
    s = p - 1
    e = 0
    while s % 2 == 0:
        s /= 2
        e += 1
 
    # Find some 'n' with a legendre symbol n|p = -1.
    # Shouldn't take long.
    #
    n = 2
    while legendre_symbol(n, p) != -1:
        n += 1
 
    x = pow(a, (s + 1) / 2, p)
    b = pow(a, s, p)
    g = pow(n, s, p)
    r = e
 
    while True:
        t = b
        m = 0
        for m in xrange(r):
            if t == 1:
                break
            t = pow(t, 2, p)
 
        if m == 0:
            return x
 
        gs = pow(g, 2 ** (r - m - 1), p)
        g = (gs * gs) % p
        x = (x * gs) % p
        b = (b * g) % p
        r = m
 
 
def legendre_symbol(a, p):
    """ Compute the Legendre symbol a|p using
        Euler's criterion. p is a prime, a is
        relatively prime to p (if p divides
        a, then a|p = 0)
 
 
        Returns 1 if a has a square root modulo
        p, -1 otherwise.
    """
    ls = pow(a, (p - 1) / 2, p)
    return -1 if ls == p - 1 else ls
 
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)
 
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        print ("x")
    else: 
       return x % m
 
 
print "a=",a
print "b=",b
print "p=",p
 
print "x-point=",x1
print "x-point=",x2
 
 
z=(x1**3 + a*x1 +b) % p
y1=modular_sqrt(z, p)
 
z=(x2**3 + a*x2 +b) % p
y2=modular_sqrt(z, p)
 
print "\nP1\t(%d,%d)" % (x1,y1)
print "P2\t(%d,%d)" % (x2,y2)
 
 
 
s=((-y2)-y1)* modinv(x2-x1,p) 
 
x3=(s**2-x2-x1) % p
 
y3=((s*(x2-x3)+y2)) % p
 
result =  "Q\t(%d,%d)" % (x3,y3)
f = open('Result01.txt', 'w')
f.write(result)
f.close()
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
09.02.2020, 20:26

Python
1
2
3
4
5
6
7
8
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
 
 
with open('out.txt','w') as fout: 
    for x in data:
        result = f'что то делаем с {x} например возводим в квадрат {x}**{x}. результат- {x**x}'
        fout.write(result+'\n')
0
 Аватар для DewCooper
2 / 2 / 0
Регистрация: 10.09.2016
Сообщений: 242
09.02.2020, 21:02  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
with open('List.txt',"r") as f:
    data = list(map(int, f.readlines()))
with open('out.txt','w') as fout:
    for x in data:
        result = f'что то делаем с {x} например возводим в квадрат {x}**{x}. результат- {x**x}'
        fout.write(result+'\n')
Semen-Semenich как правильно вставить мой код на эту функцию которую вы расписали ?
Просто у меня выходит такая же ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2020, 21:02
Помогаю со студенческими работами здесь

Как добавить функцию чтобы брать данные из списка .txt ?
Как добавить функцию чтобы брать данные из списка .txt ? Приветствую Всех Друзья! Не силен в Пайтоне, но очень нужно изменить код в...

Как вырезанный кусок из файла txt записать в другой файл txt
Дан огромный файл txt с тысячами строк типа: 0.000000,-0.015813,0.081000,-0.045125 0.002500,-0.008125,0.065750,-0.029625 ...

Переписать компоненты файла 1.txt в файл 3.txt так, чтобы в файле 3.txt числа шли в определенном порядке
Дан файл 1.txt, компоненты которого являются целыми числами.Файл 1.txt содержит столько же отрицательных чисел, сколько положительных....

Как сделать перенос из отдного txt файла текста в другой txt файл в Turbo C?
Надо сделать с потоками. fopen fgets fputs - с этими функциями

Переписать все числа из файлов 1.txt и 2.txt в файл 3.txt
Здравствуйте! Нужна помощь. Есть два текстовых файла 1.txt и 2.txt в них есть числа. реализовать консольное приложение которое...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru