Уведомления

Группа в Telegram: @pythonsu

#1 Март 22, 2015 14:28:08

Aspergo
Зарегистрирован: 2014-08-31
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Код не работает

p=[]
e=[]
for z in range(1,1000):
  for k in range(1,1000):
    r=z*k
    p.append(str(r))
for x in p:
    if len(x)%2==0:
      for i in range(0, (len(x)/2)):
        if x[i]==x[-i-1]: 
          e.append(int(x))
    elif len(x)%2!=0:
      for i in range(0, len(x)-1/2):
        if x[i]==x[-i-1]:
          e.append(int(x))
print max(e)

Почему этот код не работает? Что не так? В список e добавляет неправильные числа-которые не симметричны относительно середины!

Офлайн

#2 Март 22, 2015 15:12:00

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Код не работает

а что он должен делать? где условие? или мы сами должны угадать



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Март 22, 2015 18:04:51

ivsatel
Зарегистрирован: 2014-12-06
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Код не работает

Aspergo
Не разбирался, но попробуй так:

p=[]
e=[]
for z in range(1,1000):
  for k in range(1,1000):
    r=z*k
    p.append(str(r))
for x in p:
    if len(x)%2==0:
      for i in range(0, int(len(x)/2)):
        if x[i]==x[-i-1]: 
          e.append(int(x))
    elif len(x)%2!=0:
      for i in range(0, int(len(x)-1/2)):
        if x[i]==x[-i-1]:
          e.append(int(x))
print max(e)

Офлайн

#4 Март 22, 2015 19:00:34

dedok29
Зарегистрирован: 2015-03-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Код не работает

Ребята помогите пожалуйста найти ошибку:
задача простая, дана квадратная матрица
нужно определить присутствуют ли в побочной диагонали нули
прога вроде работает что то считает но не то что нужно, немогу понять почему не правильно считает
условие отбора вроде задал как надо if A ( i )( N-i-1 )= = 0 т.к вроде здесь нумерация начинается не с единицы а с нуля

k=0
N = int(input('введите размерность квадратной матрицы  '))
M = N
row = [0]*M
A = [row]*N
import random
for i in range(N):
	for j in range(M):
		A[i][j] = random.randint ( 0, 5 )
		print ( "{:4d}".format(A[i][j]),
			end = "" )
	print()
for i in range(N):
        for j in range(M):
                if  A[i][N-i-1]==0:
                        k=k+1
                       
                else:
                        k=k+0
if k>0:
	print ('В данной матрице  в побочной диагонали  присутствует нулей ',k)
else:
	print ('В  данной матрице  нет  нулей в  побочной  диагонали')

Отредактировано dedok29 (Март 22, 2015 19:13:16)

Офлайн

#5 Март 22, 2015 19:42:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Код не работает

# -*-coding:utf-8-*-
k = 0
N = int(input('введите размерность квадратной матрицы  '))
M = N
A = []
import random
for i in range(N):
    A.append([])
    for j in range(M):
        A[i].append(random.randint(0, 5))
for i in range(N):
    print A[i]
    j = N - i - 1
    if A[i][j] == 0:
        k += 1
if k > 0:
    print (u'В данной матрице  в побочной диагонали  присутствует нулей %s' % k)
else:
    print (u'В  данной матрице  нет  нулей в  побочной  диагонали')



Офлайн

#6 Март 22, 2015 19:44:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Код не работает

Ошибка стандартная

A = [row]*N
Список - ссылочный тип, таким образом ты получил N одинаковых строк в матрице, потому что они ссылаются на один и тот же объект row.



Офлайн

#7 Март 22, 2015 19:45:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Код не работает

else:
      k=k+0
Над этим долго думал, или озарение внезапно пришло?



Офлайн

#8 Март 22, 2015 20:31:48

dedok29
Зарегистрирован: 2015-03-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Код не работает

Спасибо огромное)

else:
      k=k+0
это так излишки пытался как мог что все работало)

Офлайн

#9 Март 23, 2015 18:31:03

dedok29
Зарегистрирован: 2015-03-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Код не работает

Ребята выручай пожалуйста)
Задача такая
Из заданного вектора A(3N) получите вектор B(N), очередная компонента которого равна среднему арифметическому очередной тройки компонент вектора А.
вообщем есть код на паскале

uses
  CRT;
 
const
  N = 5;
 
type
  Array3N = Array [1..3*N] of Integer;
  ArrayN = Array [1..N] of Real;
 
var
  X: Array3N;
  Y: ArrayN;
  i, j: Integer;
 
begin
  Clrscr;
  Randomize;
  for i := 1 to 3*N do
  begin
    X[i] := -1000 + Random(2000);
    Write(X[i], ' ');
  end;
  Writeln('');
  i := 1;
  j := 1;
  while (i <= 3*N-2)and(j <= N) do
  begin
    Y[j] := (X[i] + X[i+1] + X[i+2]) / 3;
    Write(Y[j]:6:2, ' ');
    j := j + 1;
    i := i + 3;
  end;
  Writeln('');
  Readln;
end.
попытался перевести эту задачу в питона, как то у меня не очень хорошо получается помогите пожалуйста. ))
from random import randint
N = 2
M=N*3
A = [0]*M
for i in range(M):
  A[i] = randint(1,10)
  print(A[i])
j=1
i=1
B = [0]*N
for i in range(N):
    while i <= 3*N-3 and j <= N-1:
        B[j] = (A[i] + A[i + 1] + A[i + 2]) / 3
        print(B[j])
        j = j + 1
        i = i + 3

Офлайн

#10 Март 23, 2015 21:33:04

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Код не работает

import random
n = 2
A = [random.randint(1, 10) for _ in range(n*3)]
B = [sum(A[i: i+3])/3 for i in range(0, n*3, 3)]
print(A, B)



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 23, 2015 21:35:19)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version