Найти - Пользователи
Полная версия: помогите пожалуйста решть задачи
Начало » Python для экспертов » помогите пожалуйста решть задачи
1 2 3 4 5
Kengyry
Люди! Плиз, помогите!!! Всего одна задача.

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

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
Такой вариант подойдёт?

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
Охотник тьмы
1) В одномерном массиве сост. из N (вводить) веществ. элементы вычислить(исполнительную подпрограмму кол-во элементов массива лежащих в диапозоне отAдоB упорядочить элементы массива по убыванию модуль элементов.
2)написать прогу считывает с клавы вещественное число A и целое число N(>0)и выводит все циклы степени числа A от 1 до N
Помогите решить PLZ
Охотник тьмы
Striver братуха посмотри задачи PLZ
Охотник тьмы
P.S. не могу допуститься до экзамена.=)
slav0nic
#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
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
Слушай, Охотник тьмы, ты если людей просишь о чем-то, можешь проявить уважение к этим людям и написать условие задачи грамотно по русски? Я три раза читал 1 задачу, по-моему так и не врубился, чего требуется.

По 2 задаче последняя строка
print “%f ^ %i = %f” %(a, i, a**i)
а то он всё целыми пишет.
Striver
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
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB