Форум сайта python.su
1. Файл numbersXX содержит записи целых чисел. Каждое число размещается в отдельной строке, завершающейся символом “,” (запятая), за которым следует символ новой строки (“\n”):
314,
212,
269,
…
2. Написать программу, которая
a. считывает все числа из файла numbersXX ,
b. выводит их на экран в виде:
“Список целых чисел, считанных из файла: …”
c. находит все простые числа в полученном списке,
d. выводит результат на экран в виде:
“Простые числа в списке: …”
Замечание. Использование кириллицы в выводе результата обязательно.
1. Модуль math стандартной библиотеки Python содержит константы π = 3.14…, e = 2.7… . Написать программу, которая
a. получает значение константы π
b. выводит найденное значение на экран в виде:
pi = 3.14…
c. Получает запись числа π в системе счисления по основанию 8 с точностью 4 знака в дробной части числа и выводит результат в виде:
“Число pi в системе счисления по основанию 8: …”
Замечание. Использование кириллицы в выводе результата обязательно.
Офлайн
with open('/path/numbersXX') as f: nums = [s.rstrip()[:-1] for s in f.readlines()] print(u'Список целых чисел, считанных из файла: {}'.format(', '.join(nums))) def is_prime(n): if n % 2 == 0 and n > 2: return False return all(n % i for i in range(3, int(n**0.5) + 1, 2)) prime_nums = [x for x in nums if is_prime(int(x))] print(u'Простые числа в списке: {}'.format(', '.join(prime_nums)))
>>> print(u'Список целых чисел, считанных из файла: {}'.format(', '.join(nums)))
Список целых чисел, считанных из файла: 314, 212, 269
>>> print(u'Простые числа в списке: {}'.format(', '.join(prime_nums)))
Простые числа в списке: 269
Офлайн
botinagnums = [s.rstrip()[:-1] for s in f.readlines()]
nums = [int(s.rstrip()[:-1]) for s in f]
botinagprime_nums = [x for x in nums if is_prime(int(x))]
prime_nums = filter(is_prime, nums)
Отредактировано py.user.next (Дек. 12, 2014 00:53:11)
Офлайн
py.user.next, ok. Учтём на будущее.
import math def float_dec_to_oct(num, precision): frac, whole = math.modf(num) before_point = after_point = '' while whole != 0: rem = whole % 8 whole = whole / 8 before_point += str(int(rem)) for x in range(precision): frac, wh = math.modf(frac * 8) after_point += str(int(wh)) new_num = float('.'.join([before_point[::-1], after_point])) return new_num print(u'pi = {}'.format(math.pi)) print(u'Число pi в системе счисления по основанию 8: {:.4f}'.format(float_dec_to_oct(math.pi, 4)))
>>> print(u'pi = {}'.format(math.pi))
pi = 3.14159265359
>>> print(u'Число pi в системе счисления по основанию 8: {:.4f}'.format(float_dec_to_oct(math.pi, 4)))
Число pi в системе счисления по основанию 8: 3.1103
Отредактировано botinag (Дек. 12, 2014 08:43:02)
Офлайн