Kengyry
Янв. 14, 2007 23:36:30
Люди! Плиз, помогите!!! Всего одна задача.
Написала я вот такую программку. Она считает количество букв а, в, с во введеной мною строке.
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…
Я не знаю, что писать. Помогите!!!
Striver
Янв. 15, 2007 06:01:51
Такой вариант подойдёт?
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
Охотник тьмы
Янв. 15, 2007 14:47:46
1) В одномерном массиве сост. из N (вводить) веществ. элементы вычислить(исполнительную подпрограмму кол-во элементов массива лежащих в диапозоне отAдоB упорядочить элементы массива по убыванию модуль элементов.
2)написать прогу считывает с клавы вещественное число A и целое число N(>0)и выводит все циклы степени числа A от 1 до N
Помогите решить PLZ
Охотник тьмы
Янв. 15, 2007 14:50:02
Striver братуха посмотри задачи PLZ
Охотник тьмы
Янв. 15, 2007 14:51:49
P.S. не могу допуститься до экзамена.=)
slav0nic
Янв. 15, 2007 16:28:38
#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)
Kengyry
Янв. 15, 2007 17:29:57
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
Striver
Янв. 16, 2007 05:49:57
Слушай, Охотник тьмы, ты если людей просишь о чем-то, можешь проявить уважение к этим людям и написать условие задачи грамотно по русски? Я три раза читал 1 задачу, по-моему так и не врубился, чего требуется.
По 2 задаче последняя строка
print “%f ^ %i = %f” %(a, i, a**i)
а то он всё целыми пишет.
Striver
Янв. 16, 2007 05:51:39
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
Striver
Янв. 16, 2007 06:31:58
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