Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2011 12:05:28

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

Помощь и в помощь новичку. Часть 1.

Поскольку язык изучаю самостоятельно, без наличия навыков и опыта в других языках, возникла реальная проблема - отсутствие литературы с подробными примерами и задачами. В связи с этим нашел сборник заданий для паскаля и решаю их в питоне =D Для таких же новичков как я - будет полезно, а к сторожилам убедительная просьба - если есть ошибки, то прошу на них указать, дабы избежать их в дальнейшем (в т.ч. на синтаксис).
Обращаю внимание, что программы написаны на простом уровне (например без учета, что пользователь введет вместо числа букву и т.д.). Все скидываю одним кодом.
Если у кого есть интересные задачи (для начинающих) - прошу скидывать.
Если тема вызовет интерес - будет продолжение =)
Версия 2.7

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# найти значение выражения 1*1+2*2+...+n*n

n = input ('Input n: ')
n = int(n)
s = 0
n = range (0, n+1) # создаем список для создания цикла, т.к. к числа for неприменим
for i in n :
s = s + i*i
print s

# Создать из двух таблиц общую и элементы расставить по возрастанию.
# В общей таблице проверить ср арифметическое положительных и отрицательных чисел.

import random
A = range (-100, 100)
rand1 = random.sample (A, 6)
rand2 = random.sample (A, 6)

print ('First sequence: '), rand1
print ('Second sequence: '), rand2
B = rand1 + rand2
B.sort()
print ('General and rank-odered: '), B

C = [] # новый список для вычисления ср арифметического положительных элементов
D = [] # отрицательных

for x in B : # создаем список положительных элементов
if x >= 0 :
C.append (x)
else :
D.append (x) # отрицательных
s = 0
for i in C : # считаем общую сумму элементов положительных
s = s + i
s1 = 0
for i in D : # отрицательных
s1 = s1 + i

print ('arithmetic(al) mean of positive numbers = ')
print ('sum'), s, ('divide quantity'), len(C), (' = '), float(s)/len(C)
print ('arithmetic(al) mean of negative numbers = ')
print ('sum'), s1, ('divide quantity'), len(D), (' = '), float(s1)/len(D)

# Найти максимально число из четырех

a = input ('Insert first number: ')
b = input ('Insert second number: ')
c = input ('Insert third number: ')
d = input ('Insert fourth number: ')

A = [a, b, c, d]
B = max(A)
C = min(A)
print ('Max element: '), B
print ('Min elementL '), C

# Найти количество заданной буквы (слова) в тексте. Если буквы нет - уведомить.

A = raw_input ('Input the text: ')
B = raw_input ('What would you like to find? ')
x = A.count(B)
if x != 0 :
print 'The quantity of', B, 'is', A.count(B)
else :
print 'Is absent'

# Найти степень числа

A = input ('Input a number: ')
B = input ('Input a degree: ')
print 'Number', A, 'in' ,B ,'degree = ', pow(A,B)

# Найти факториал числа

A = input ('Input a number: ')
A = int(A)
B = range(1, A+1)
s = 1
for i in B :
s = s*i
print A, '! =', s

# Определить лежит ли заданная точка на прямой y = kx + 1

x1 = input ("Coordinate of line x1: ")
y1 = input ("Coordinate of line y1: ")
x2 = input ("Coordinate of line x2: ")
y2 = input ("Coordinate of line y2: ")

k = (y2-y1)/(x2-x1)
b = y2 - k*x2

x = input ("Check coordinate x")
y = input ("Check coordinate y")
if y == k*x + b :
print 'Ok'
else :
print 'No'
Еще один способ поиска факториала:

a = input (" Input a number to make a factorial: ")
a = int (a)
fac = 1
i = 0
while i < a :
i+=1
fac = fac*i
print fac



Отредактировано (Авг. 11, 2011 12:13:57)

Офлайн

#2 Авг. 11, 2011 12:52:48

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Помощь и в помощь новичку. Часть 1.

Вот отличный сборник задач, особенно для питона: http://projecteuler.net/index.php?section=problems
Что касается решения приведенных задач, то все правильно, конечно, только надо все намного короче писать, ведь это не паскаль :). К примеру:

# найти значение выражения 1*1+2*2+...+n*n
print sum( k**2 for k in range(1,n+1) )



Офлайн

#3 Авг. 11, 2011 13:08:04

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

Помощь и в помощь новичку. Часть 1.

Isem
Вот отличный сборник задач, особенно для питона: http://projecteuler.net/index.php?section=problems
Что касается решения приведенных задач, то все правильно, конечно, только надо все намного короче писать, ведь это не паскаль :). К примеру:

# найти значение выражения 1*1+2*2+...+n*n
print sum( k**2 for k in range(1,n+1) )
Спасибо. Вот к тому и вопрос, что если есть возможность короче писать - убедительная просьба указать на эти недочеты.



Офлайн

#4 Авг. 11, 2011 13:44:35

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Помощь и в помощь новичку. Часть 1.

Тогда еще один пример:

# Создать из двух таблиц общую и элементы расставить по возрастанию.
# В общей таблице проверить ср арифметическое положительных и отрицательных чисел.
# rand1 и rand2 - два списка чисел
B = sorted( rand1 + rand2 ) # получаем общий сортированный список
C = [i for i in B if i < 0] # получаем список отрицательных чисел
C_average = sum(C)/len(C) # среднее арифметическое чисел из C



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version