Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в коде !!! Помогите найти недостаток 
:(
    Опции темы
Desha
Дата 4.5.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.4.2005

Репутация: нет
Всего: нет



Вся проблема в том что программу принимает автоматическая система которая вводит свои значения м смотрит на результаты если они совпадает то говорит что прально. Внизу выложу код, мне кажется идея и код верный но там чтото не учитанно, не знаю почему не принимает, кто может помогите разобратся плиз !!!

Язык программирования: PYTHON
Разработать функцию MeanDigits(const S:string):integer, определяющую среднее арифметическое цифр в строке S (дробную часть отбросить). С помощью данной функции вывести только такие строки из введенного набора, у которых среднее арифметическое цифр не меньше 5.
Вход
В первой строке входа дано количество строк N. Затем следуют N строк, по одной в каждой строке.
Выход
На выход напечатать строки результата, по одной в каждой строке.
Пример
Вход:

3
a12vc
a57sd
a54dff
Выход:

a57sd

Код

def MyFunc(x):
    a='123456789'
    sum=0
    n=0
    for ch in x:
      if a.find(ch)>=0:
        sum+=int(ch)
        n=n+1
    if n!=0:
     rez=sum/n
    else: rez=0
    return rez



l = []
a=input()
for w in range(a):
  x=raw_input()
  l.append(x)

for x in l:
  print MyFunc(x)
  if MyFunc(x) >= 5:
    print x


PM MAIL   Вверх
Desha
Дата 4.5.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.4.2005

Репутация: нет
Всего: нет



Vse spasibo !!! sama nashla oshibku smile
def MeanDigits(s):
count=0
sum=0
sr=0
s1='1234567890'
for i in range(len(s)):
if s1.find(s[i])>=0:
count+=int(s[i])
sum+=1
if sum!=0:
sr= count/sum
return sr

n= input()
l=[]
for i in range(n):
s=raw_input()
l.append(s)

for s in l:
if MeanDigits(s)>=5:
print s




v takom variante rabotaet smile)
PM MAIL   Вверх
Lich
Дата 5.5.2005, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.4.2005

Репутация: нет
Всего: нет



можно проще:
Код

#!/usr/bin/python
# -*- coding:koi8-r -*-
import sys

def MeanDigits(s):
    digits=[int(i) for i in s if i.isdigit()]
    return (digits and sum(digits)/len(digits)) or 0

try:
    n=int(raw_input())
except ValueError:
    print >> sys.stderr, 'Invalid number!'
    sys.exit(1)

result=[]
for i in range(n):
    line=raw_input()
    if MeanDigits(line)>5:
        result.append(line)

print '\n'.join(result)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1175 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.