Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2007 23:36:30

Kengyry
От:
Зарегистрирован: 2007-01-14
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Люди! Плиз, помогите!!! Всего одна задача.

Написала я вот такую программку. Она считает количество букв а, в, с во введеной мною строке.

a =
while True:
s = raw_input(“>>>”)
if not s:
break
a.append(s)
aCnt = 0
bCnt = 0
cCnt = 0
xCnt = 0
i = 0
while i < len(a):
s = a
j = 0
while j < len(s):
c = s
if c == “a”:
aCnt = aCnt+1
elif c == “b”:
bCnt = bCnt+1
elif c == “c”:
cCnt = cCnt+1
else:
xCnt = xCnt+1
j = j+1
i = i+1
print aCnt, bCnt, cCnt, xCnt



Но тут пришлось поочередно присваивать переменной с то значение а, то в, то с. Мне преподаватель сказал, что можно записать все проще, не присваиваивая каждый раз переменной с новое значение. То есть если продолжить решение задачи моим методом, то переменной надо затем присвоить значение d, e, f и так далее, не очень то удобно.
Теперь мне учитель изменил задание - вместо пустого списка пустой словарь. Использовать метод has_key
и по прежнему считать количество букв во введенной строке, т.е. например если я ввожу строку hell
то в окне калькулятора Python должно быть отражено кол-во разных букв h 1, e 1, l 2…
Я не знаю, что писать. Помогите!!!



Офлайн

#2 Янв. 15, 2007 06:01:51

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Такой вариант подойдёт?

Dct={}
while True:
s = raw_input(“>>>”)
if not s:
break
for i in s:
if Dct.has_key(i):
Dct+=1
else:
Dct=1
print Dct



Офлайн

#3 Янв. 15, 2007 14:47:46

Охотник тьмы
От:
Зарегистрирован: 2006-12-28
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

1) В одномерном массиве сост. из N (вводить) веществ. элементы вычислить(исполнительную подпрограмму кол-во элементов массива лежащих в диапозоне отAдоB упорядочить элементы массива по убыванию модуль элементов.
2)написать прогу считывает с клавы вещественное число A и целое число N(>0)и выводит все циклы степени числа A от 1 до N
Помогите решить PLZ



Офлайн

#4 Янв. 15, 2007 14:50:02

Охотник тьмы
От:
Зарегистрирован: 2006-12-28
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Striver братуха посмотри задачи PLZ



Офлайн

#5 Янв. 15, 2007 14:51:49

Охотник тьмы
От:
Зарегистрирован: 2006-12-28
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

P.S. не могу допуститься до экзамена.=)



Офлайн

#6 Янв. 15, 2007 16:28:38

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

#2

print “enter a: ”;a = input()
print “enter n: ”; n = input()
for i in range(1, n) :
print “%i ^ %i = %i” %(a, i, a**i)

Офлайн

#7 Янв. 15, 2007 17:29:57

Kengyry
От:
Зарегистрирован: 2007-01-14
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Striver
Такой вариант подойдёт?
Спасибо огроменное! А можно это чуть иначе записать? Я просто забыла упомянуть, что мне еще препод не рекомендовал использовать for.
Он мне так же сказал, что должна быть использована такая конструкция
if not letters.has_key(с):
letters = 0
Можно ли это записать иначе? Используя if… elif… и то что я выше написала и оставив этот фрагмент из моей программки?
while i < len(a):
s = a
j = 0
while j < len(s):

j = j+1
i = i+1



Офлайн

#8 Янв. 16, 2007 05:49:57

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Слушай, Охотник тьмы, ты если людей просишь о чем-то, можешь проявить уважение к этим людям и написать условие задачи грамотно по русски? Я три раза читал 1 задачу, по-моему так и не врубился, чего требуется.

По 2 задаче последняя строка
print “%f ^ %i = %f” %(a, i, a**i)
а то он всё целыми пишет.



Офлайн

#9 Янв. 16, 2007 05:51:39

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

1 задача:

# -*- coding: cp1251 -*-

def vvod():
print u“Введите длину массива”
n=input()
mas=
for i in range(n):
print u“Введите элемент №”, i
mas.append(float(input()))
print u“Введите A”
A=float(input())
print u“Введите B”
B=float(input())
return mas,A,B

def N_diapazon(mas,A,B):
N=0
for i in mas:
if A<=i<=B:
N+=1
return N

def abscmp(a,b):
return -cmp(abs(a),abs(b))

mas,A,B=vvod()
N=N_diapazon(mas,A,B)
print u'В диапазоне от %f до %f %i элементов' % (A,B,N)
mas.sort(abscmp)
print u“Массив, упорядоченный по убыванию модулей элементов:”
print mas



Офлайн

#10 Янв. 16, 2007 06:31:58

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

помогите пожалуйста решть задачи

Kengyry: Как же я ненавижу ситуации, когда “препод хочет как-то так…”. Полностью я это так и не понял (наверное я тормоз), всё что могу, это поменять for на while.

letters={}
while True:
s = raw_input(“>>>”)
if not s:
break
n=len(s)
i=0
while i<n:
c=s
if letters.has_key©:
letters+=1
else:
letters=1
i+=1
print letters



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version