Функции: продолжение
Как описывать и использовать функции.
— тема по Linux
— необязательная тема
- (повторение) Определение функции, формальные и фактические параметры, return
- (повторение) Позиционные и именные формальные параметры, параметры по умолчанию
- Рекурсия
- Лямбда-функции
Домашнее задание
— теоретическое задание
— новая тема
- На плоскости заданы своими координатами п точек. Составить программу, определяющую, между какими из пар точек самое большое расстояние.
- maxlen.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 На плоскости заданы своими координатами п точек. Составить программу, определяющую, между какими из пар точек самое большое расстояние. 5 """ 6 7 from math import * 8 9 def path(m,n): 10 "Расстояние от точки m до точки n" 11 return sqrt((m[0]-n[0])**2+(m[1]-n[1])**2) 12 13 n=input() 14 # точки вводсятся в формате x, y построчно 15 coord=[input() for i in xrange(n)] 16 17 m=M=l=0 18 19 for i in xrange(n-1): 20 for j in xrange(i+1,n): 21 p=path(coord[i],coord[j]) 22 if p>l: 23 m,M,l=i,j,p 24 25 print m,M,p,coord[m],coord[M]
- Составить программу, определяющую, в каком из данных двух чисел больше разных цифр.
- maxdig.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 Составить программу, определяющую, в каком из данных двух чисел больше разных цифр. 5 """ 6 7 def dig(n): 8 "Сколько цифр в числе n" 9 d={} 10 while n>0: 11 d[n%10]=1 12 n/=10 13 return len(d) 14 15 a,b=input("Введите два числа: ") 16 c=dig(a)>dig(b) and a or b 17 print "В %d больше цифр"%c
- Вывести все простые числа от 1 до заданного N
- simple.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 Вывести все простые числа от 1 до заданного N 5 (кажется, 1 -- не простое число) 6 """ 7 8 from math import * 9 10 n=input("введите N: ") 11 12 for i in xrange(2,n): 13 for j in xrange(2,int(sqrt(i))): 14 if i%j == 0: 15 break 16 else: 17 print i,
Решето Эратосфена:
simple_erato.py1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 Вывести все простые числа от 1 до заданного N 5 (кажется, 1 -- не простое число) 6 7 Алгоритм "Решето Эратосфена" 8 """ 9 10 from math import * 11 12 n=input("введите N: ") 13 14 Er=[True]*n 15 16 for i in xrange(2,len(Er)): 17 if Er[i]: 18 print i, 19 j=i*2 20 while j<n: 21 Er[j]=False 22 j+=i
Ввести ширину и высоту текстового экрана в знакоместах, начальное и конечное значение параметра X функции и саму функцию в виде формулы от X. Пользуясь функцией eval(), вВывести вертикально ориентированный "график" этой функции в виде (см. Рисование графика):
* * * * * * * *
* * * ** *** **** ***** ******