Форум начинающих программеров

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Расписание

Сообщений 1 страница 18 из 18

1

Сегодня, 15 февраля в 14-30 занятие

0

2

На следующем занятии IQ-тесг

0

3

Поздравляю всех с началом весенних каникул!!! Хорошего отдыха с хорошим настроением!

0

4

К изучению языка Python код игры в карты

koloda = [6, 7, 8, 9, 10, 2, 3, 4, 11]*4

import random
random.shuffle(koloda)

print('Поиграем в очко?')
count = 0

while True:
    choice = input('Будете брать карту? y/n\n')
    if choice == 'y':
        current = koloda.pop()
        print('Вам попалась карта достоинством %d' %current)
        count += current
        if count > 21:
            print('Извините, но вы проиграли')
            break
        elif count == 21:
            print('Поздравляю, вы набрали 21!')
            break
        else:
            print('У вас %d очков.' %count)
    elif choice == 'n':
        print('У вас %d очков и вы закончили игру.' %count)
        break

print('До новых встреч!')

0

5

Код выводит графики синуса и косинуса

""
import matplotlib as mpl
import matplotlib.pyplot as plt
import math
dpi = 80
fig = plt.figure(dpi = dpi, figsize = (512 / dpi, 384 / dpi) )
mpl.rcParams.update({'font.size': 10})
plt.axis([0, 10, -1.5, 1.5])
plt.title('Sine & Cosine')
plt.xlabel('x')
plt.ylabel('F(x)')
xs = []
sin_vals = []
cos_vals = []
x = 0.0
while x < 10.0:
    sin_vals += [ math.sin(x) ]
    cos_vals += [ math.cos(x) ]
    xs += [x]
    x += 0.1
plt.plot(xs, sin_vals, color = 'blue', linestyle = 'solid', label = 'sin(x)')
plt.plot(xs, cos_vals, color = 'red', linestyle = 'dashed', label = 'cos(x)')
plt.legend(loc = 'upper right')
fig.savefig('trigan.png')
plt.show()

0

6

Выкладываю коды программ на Питоне, которые разбирали на уроке:

Программа угадай число с комментариями

import random
secret = random.randint(1, 99) # секретное число
guess = 0       # это переменная для угадывания
tries = 0       # это переменная для подсчета числа попыток
print('Эй, на палубе! Я ужасный пират Робертс, и у меня есть секрет')
print('Это число от 1 до 99. Я дам тебе 6 попыток')
while guess != secret  and tries < 6:
    guess = int(input('Твой вариант?'))
    if guess < secret:
        print('Это слишком мало, презренный пес!')
    elif guess > secret:
        print('Это слишком много, сухопутная крыса!')
   
    tries = tries + 1 # считаем число попыток

if guess == secret:
    print('Хватит, ты угадал мой секрет!')
else:
    print('Попытки кончились! Ты проиграл!')
print('Это число ', secret)

0

7

Гонки черепах

# -*- coding: utf-8 -*-
"""
Created on Sat Apr 10 19:51:28 2021

@author: Игорь
"""

import turtle
import random
from random import randint

sna = 0
snb = 0
snm = 0
snv = 0

turtle.penup()
turtle.goto(-330, 300)
turtle.pendown()
turtle.write('В гонках участвуют четыре черепахи')
turtle.penup()
turtle.goto(-330, 270)
turtle.pendown()
turtle.write('Ада - красная дорожка')
turtle.penup()
turtle.goto(-330, 240)
turtle.pendown()
turtle.write('Блоха - черная дорожка')
turtle.penup()
turtle.goto(-330, 210)
turtle.pendown()
turtle.write('Молния - желтая дорожка')
turtle.penup()
turtle.goto(-330, 180)
turtle.pendown()
turtle.write('Варвара - зеленая дорожка')
input()
turtle.clear()

turtle.speed(10)
turtle.penup()
turtle.goto(-330, 140)

for i in range(25):
    turtle.pendown()
    turtle.write(i)
    turtle.penup()
    turtle.right(90)
   
    turtle.forward(10)
    turtle.pendown()
    turtle.forward(150)
    turtle.penup()
    turtle.backward(160)
    turtle.left(90)
    turtle.forward(30)

turtle.speed()
ada = turtle.Turtle()
ada.color('red')
ada.shape('turtle')

ada.penup()
ada.goto(-350, 100)
ada.pendown()

bloha = turtle.Turtle()
bloha.color('black')
bloha.shape('turtle')

bloha.penup()
bloha.goto(-350, 70)
bloha.pendown()

molnya = turtle.Turtle()
molnya.color('yellow')
molnya.shape('turtle')

molnya.penup()
molnya.goto(-350, 40)
molnya.pendown()

varvara = turtle.Turtle()
varvara.color('green')
varvara.shape('turtle')

varvara.penup()
varvara.goto(-350, 10)
varvara.pendown()

for turn in range(250):
    na = random.randint(1, 5)
    ada.forward(na)
    sna = sna + na
    if sna > 250:
        lider = sna
        break
    bloha.forward(random.randint(1, 5))
    molnya.forward(random.randint(1, 5))
    varvara.forward(random.randint(1, 5))
   
turtle.done()

0

8

Для тех, кто не установил Питон на свой ПК даю ссылку, где можно писать программы на Питоне онлайн:

https://colab.research.google.com/noteb … HZx7Gndbrh

0

9

Пример программы со списком:

# это мой список покупок
shoplist = ['яблоки', 'манго', 'морковь', 'бананы'] # это список из 4 элементов
print('я должен сделать', len(shoplist), 'покупок.')
print('покупки:', end=' ')
for item in shoplist:          # распечатываем при помощи цикла
    print(item, end=' ')
print('\nТакже нужно купить риса.')
shoplist.append('рис')
print('Теперь мой список покупок таков:', shoplist)
print('Отсортирую-ка я свой список')
shoplist.sort()
print('отсортированный список:', shoplist)
print('первое, что купить, это ', shoplist[0])
olditem = shoplist[0]
del shoplist[0]           #  удаляем первый (нулевой) элемент списка
print('я купил', olditem)
print('теперь мой список покупок:', shoplist)

0

10

Пример программы с циклом for:

программа суммирует четные числа от 0 до 8

i = 0
kol = 0
for i in range(0, 10, 2):
    kol = kol + i
    print('i=', i)
    print('kol=', kol)

0

11

Ссылка для скачивания двух учебников по Питону

http://free-soft.ucoz.de/load

0

12

Ключевые (зарезервированные) слова.

False - ложь.
True - правда.
None - пустой объект.
and - логическое И.
with / as - менеджер контекста.
assert условие - возбуждает исключение, если условие ложно.
break - выход из цикла.
class - пользовательский тип, состоящий из методов и атрибутов.
continue - переход на следующую итерацию цикла.
def - определение функции.
del - удаление объекта.
elif - в противном случае, если.
else
except - перехватить исключение.
finally - вкупе с инструкцией tгy, выполняет инструкции независимо от того, было ли исключение или нет.
for – цикл for
from - импорт нескольких функций из модуля.
global - позволяет сделать значение переменной, присвоенное ей внутри функции, доступным и за пределами этой функции.
if - если.
import - импорт модуля.
in - проверка на вхождение.
is - ссылаются ли 2 объекта на одно и то же место в памяти.
lambda - определение анонимной функции.
nonlocal - позволяет сделать значение переменной, присвоенное ей внутри функции, доступным в объемлющей инструкции.
not - логическое НЕ.
or - логическое ИЛИ.
pass - ничего не делающая конструкция.
raise - возбудить исключение.
return - вернуть результат.
try - выполнить инструкции, перехватывая исключения.
while – цикл while.
yield - определение функции-генератора.

Переменные и функции.

Функции имеют имя и аргументы.

Пример: print(‘сумма =’, x)
Функция имеет два аргумента.

Можно определять свою функцию с помощью слова def:

dеf аdd(х, у):
    rеturn х + у

Функция add имеет два аргумента: x и y
return – обязательное слово - возвращает значение функции. Эта функция складывает два числа.

Переменные и функции могут обозначаться любым набором букв (и цифр) кроме зарезервированных ключевых слов (см. список).

0

13

1. Сменка двух переменных

# a = 4 b = 5
a,b = b,a
# print(a,b) >> 5,4

Давайте начнем с чего-то более простого, например, поменяем местами две переменные друг с другом. Этот метод - один из самых простых и интуитивно понятных методов, который вы можете написать без необходимости использовать временную переменную или применять арифметические операции.
2. Множественные присвоения переменных

a,b,c = 4,5.5,'Hello'
#print(a,b,c) >> 4,5.5,hello

Вы можете использовать запятые и переменные, чтобы назначать нескольким переменным значения за раз. Используя этот метод, вы даже можете назначить несколько типов данных var за раз. Вы можете использовать список для присвоения значений переменным. Ниже приведен пример присвоения нескольких значений разным переменным из списка.

a,b,*c = [1,2,3,4,5]
print(a,b,c)
> 1 2 [3,4,5]

3. Сумма четных чисел в списке

Для этого может быть много способов, но лучший и самый простой способ - использовать индексирование списка и функцию суммирования.

a = [1,2,3,4,5,6]
s = sum([num for num in a if num%2 == 0])
print(s)
>> 12

4. Удаление нескольких элементов из списка

del - ключевое слово, используемое в Python для удаления объектов из списка.

#### Удаляем все четные числа
a = [1,2,3,4,5]
del a[1::2]
print(a)
>[1, 3, 5]

5. Чтение файлов

lst = [line.strip() for line in open('data.txt')]
print(lst)

Здесь мы используем понимание того, как устроен список. Сначала мы открываем текстовый файл и с помощью цикла for читаем строку за строкой. В итоге с помощью strip убираем все лишнее пространство. Но есть один более простой и короткий способ сделать то же самое, используя только функцию списка.

list(open('data.txt'))
##Использование with также закроет файл после использования
with open("data.txt") as f: lst=[line.strip() for line in f]
print(lst)

6. Запись данных в файл

with open("data.txt",'a',newline='\n') as f: f.write("Python is awesome")

Приведенный выше код сначала создаст файл data.txt, если его еще нет, а затем напишет в этом файле Python is awesome.
7. Создание списков

lst = [i for i in range(0,10)]
print(lst)
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

или

lst = list(range(0,10))
print(lst)

Мы также можем создать список строк, используя тот же метод.

lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']]
print(lst)
> ['Hello Karl', 'Hello Abhay', 'Hello Zen']

8. Mapping списков, или изменение типа данных в списке

Иногда в нашем проекте нам нужно изменить типы данных всех элементов в списке. Первый способ, который приходит вам в голову, - использовать цикл, а затем получить доступ ко всем элементам из списка, а затем один за другим изменить тип данных элементов. Этот метод предназначен для старой школы в Python. У нас есть функция map, которая может делать эту работу за нас.

list(map(int,['1','2','3']))
> [1, 2, 3]
list(map(float,[1,2,3]))
> [1.0, 2.0, 3.0]

# А вот как делалось раньше
[float(i) for i in [1,2,3]]
> [1.0, 2.0, 3.0]

9. Создание набора

Метод, который мы использовали для создания списков, также можно использовать для создания наборов. Давайте создадим набор с помощью метода, который возвращает квадратный корень всех четных чисел в диапазоне.

# Квадрат всех четных чисел в диапазоне
{x**2 for x in range(10) if x%2==0}
> {0, 4, 16, 36, 64}

10. Fizz Buzz

Это тест, в котором нам нужно написать программу, что печатает числа от 1 до 100. Но для чисел, кратных трем, выведет «Fizz» вместо числа, а для кратных пяти выведет «Buzz». (если кратно и трем, и пяти, то выводится, соответственно, FizzBuzz).

Похоже, нам нужно использовать циклы и несколько операторов if-else. Если вы попытаетесь сделать это на любом другом языке, то вам, возможно, придется написать до 10 строк кода. Но используя python, мы сможем реализовать FizzBuzz всего одной строкой кода.

['FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i  for i in range(1,20)]

В приведенном выше коде мы используем понимание списка для запуска цикла от 1 до 20, а затем на каждой итерации цикла мы проверяем, делится ли число на 3 или 5. Если да, то мы заменяем число на Fizz или Buzz соответственно (при выполнении обоих условий заменим число на FizzBuzz).
11. Палиндром

Палиндром - это число или строка, которые в обратном виде выглядят одинаково.

text = 'level'
ispalindrome = text == text[::-1]
ispalindrome
> True

12. Целые числа, разделенные пробелами, в списке

lis = list(map(int, input().split()))
print(lis)
> 1 2 3 4 5 6 7 8
[1, 2, 3, 4, 5, 6, 7, 8]

13. Лямбда-функция

Лямбда-функция - это небольшая анонимная функция.

Лямбда-функция может принимать любое количество аргументов, но может иметь только одно __выражение.

sqr = lambda x: x * x  ##Функция, возвращающая квадрат любого числа
sqr(10)
> 100

14. Проверить наличие числа в списке

num = 5
if num in [1,2,3,4,5]:
     print('present')
> present

15. Вывод паттернов

Паттерны - это то, что меня всегда увлекало. В python мы можем рисовать удивительные паттерны, используя всего одну строку кода.

n = 5
print('\n'.join('?' * i for i in range(1, n + 1)))
>
?
??
???
????
?????

16. Нахождение факториала

Факториал - это произведение целого числа и всех целых чисел в порядке перед ним.

import math
n = 6
math.factorial(n)
> 720

17. Ряд Фибоначчи

Ряд Фибоначчи - это серия чисел, в которой каждое число (число Фибоначчи) является суммой двух предыдущих чисел. Простейший ряд Фибоначчи: 1, 1, 2, 3, 5, 8, 13 и т.д. Мы можем использовать создание списка и цикл for для создания ряда Фибоначчи в необходимом нам диапазоне.

fibo = [0,1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(5)]
fibo
> [0, 1, 1, 2, 3, 5, 8]

18. Простое число

Простое число - это число, которое делится только само на себя и 1. например: 2,3,5,7 и т. Д. Чтобы сгенерировать простые числа в диапазоне, мы можем использовать функцию списка с фильтром и лямбда для генерации простых чисел.

list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13)))
> [2, 3, 5, 7, 11]

19. Нахождение максимального числа

findmax = lambda x,y: x if x > y else y
findmax(5,14)
> 14
или
max(5,14)

В приведенном выше коде с использованием лямбда-функции мы проверяем условие сравнения и в соответствии с ним возвращаем максимальное число.
20. Линейная алгебра

Иногда нам нужно увеличить числа в списке в 2 или 5 раз. Код ниже покажет, как это сделать.

def scale(lst, x): return [i*x for i in lst]
scale([2,3,4], 2) ## вызов функции
> [4,6,8]

21. Транспонировать матрицу

Если вам нужно преобразовать все строки в столбцы и наоборот, в python вы можете транспонировать матрицу всего в одну строку кода, используя функцию zip.

a=[[1,2,3],
   [4,5,6],
   [7,8,9]]
transpose = [list(i) for i in zip(*a)]
transpose
> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

22. Подсчет нахождений паттерна

Это важный и рабочий метод, когда нам нужно знать количество повторений паттерна в тексте. В python есть библиотека re, которая сделает эту работу за нас.

import re; len(re.findall('python','python is a programming language. python is python.'))
> 3

23. Замена текста другим текстом

"python is a programming language. python is python".replace("python",'Java')
> Java is a programming language. Java is Java

24. Симуляция подбрасывания монеты

Это может быть не так важно, но может быть очень полезно, когда вам нужно сгенерировать случайный выбор из заданного набора вариантов.

import random; random.choice(['Head',"Tail"])
> Head

25. Генерация групп

groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]]
groups
> [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

Я поделился всеми полезными и важными однострочниками, которые я знаю. Если вы знаете какие-то ещё, поделитесь в комментариях.

Примечание Черкашенко: подборка не моя:)

0

14

Помещаю ссылку на готовые учебные программки на Питоне: Тенис, Тетрис и т.д. Не выкладывать же сюда 500 строк кода:) :
http://free-soft.ucoz.de/load/posobija_ … /28-1-0-51

0

15

Программа зашифровывает текст файла  output.txt и заносит в файл shifrovka.txt (тексты на английском)

x = ""
y = 0
f1 = open("output.txt", "r")
f2 = open("shifrovka.txt","w")
pismo = f1.read()
for x in pismo:
    y = int(ord(x)) + 3
    f2.write(chr(y))
   
f2.close()
f1.close()

0

16

17

Здравствуйте. А будут ли у нас занятия на следующий год?

0

18

Нет

0