import sqlite3
con = sqlite3.connect("tutorial.db")
cur = con.cursor()
cur.execute("CREATE TABLE movie(title, year, score)")
cur.execute("""
INSERT INTO movie VALUES
('Monty Python and the Holy Grail', 1975, 8.2),
('And Now for Something Completely Different', 1971, 7.5)
""")
#con.commit()
print(cur.execute("SELECT * FROM movie").fetchall())
from moviepy.editor import *
clip = (VideoFileClip("myvideo.avi")
.fx( vfx.resize, width=460)
.fx( vfx.speedx, 2)
.fx( vfx.colorx, 0.5))
то вот пример из документации для применения нескольких эффектов к видео. Вместо этих эффектов, поставьте ваши или добавьте по необходимости. Думаю код предельно понятный.import pandas as pd
# Первая часть создание файла
df = pd.DataFrame({
'Name':['Petr','Maks','Aleksandr'],
'Age':[30,40,50],
'Salary':[500,700,600]
})
df.to_csv('data.csv', index=False)
# Вторая часть обновление
name = input('Введите Имя, чьи данные хотите изменить? ')
fields_to_change = input('Какие данные Вы хотите изменить? например Age, Salary: ').split(',')
data_to_update = {}
for field in fields_to_change:
data_to_update[field] = input(f'Введите {field}: ')
df = pd.read_csv('data.csv').set_index('Name')
df.loc[name, fields_to_change] = data_to_update
df.to_csv('data.csv')
print('Спасибо, данные обновлены')
import requests
import json
import pandas as pd
response = requests.get(url="https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Apple")
info = json.loads(response.text)
df = pd.json_normalize(info)
print(df.iloc[:,-1][0])
print(df.filter(regex='extract$',axis=1).iloc[0,0])
Результат идентичный, но так на много надежнее, мы не надеемся что нужная нам колонка последняя, а находим ее независимо от ее положения. class MyClass:
pass
my_instance = MyClass()
print(dir(my_instance))
Там будет в том числе __init__ хотя мы его явно не определяли. __init__ это конструктор класса там могут быть заданы атрибуты которые будут в области видимости экземпляра класса, с которыми будут оперировать методы экземпляра класса, он выполнится при создании экземпляра класса.detected_circles = cv2.HoughCircles(gray_blurred,
cv2.HOUGH_GRADIENT, 1, 45, param1=75,
param2=25, minRadius=8, maxRadius=36)
=[(4000,4), (2500,1),(2000,3), (8000, 2), (9000, 4), (7000,2)]
То я ожидаю ценность 15000, а он дает все равно 10500.return img, gray
перед возвращением будет создан объект кортеж и затем возвращен туда откуда была вызвана функция.return
означает выход из функции, при условии что функция не рекурсивная (там return
может останавливать рекурсию, но не обязательно выходить из функции). Твоя функция обычная и в ней есть два return
return lab_gray
при чем первый раз он и цикл то не выполнит весь если там больше одного элемента вернет значение и выйдет из функции. При условии что объект по которому ты итерируешься не пуст, иначе он пропустит цикл и вернет return img, gray
print(x)
в самый верх и увидишь. Рекурсия это бесконечный цикл вызова функцией самой себя, до тех пор пока базовое состояние не прервет его (одно или несколько). None
ты в конце видишь потому что это print
тебе его возвращает, у тебя уже есть print
внутри функции. def f(x):
print(x)
if x==0:
return
else:
f(x-1)
f(3)
. В твоем случае он тоже выйдет и return 0
он выполняет, замени return
на pass
и получишь бесконечную рекурсию. None
у тебя вот такая ситуация print(print(1))
None.
Базовый кейс в рекурсии останавливает рекурсию, но не выходит из функции. Что бы мы вернули значение базового кейса нам нужно добавить return
к рекурсивному случаю. Напримерdef f(x):
if x==0:
return 100
else:
f(x-1)
print(f(3))
def f(x):
if x==0:
return 100
else:
return f(x-1)
print(f(3))
Функция вернет 100. Насчет print я полную глупость написал, он возвращает None и я подумал, что это имеет место. Глупость полная. если мы добавляем return к рекурсивному кейсу то выведет то что возвращает базовый кейс. А базовый кейс только останавливает рекурсию но не выходит из функции.def f(x):
print(x)
if x==0:
return 'Конец'
for i in range(10):
return f(x-1)
print(f(3))
Цикл выполнится лишь раз и затем выход из функции. RPG = Dragon_Age, The_Elder_Scrolls_Skyrim
Плохая структура, которая потребует парсинга, сами себе создаем проблемы. import json
data = {
"RPG": ["Dragon_Age", "The_Elder_Scrolls_Skyrim"],
"Action": ["Grand_Theft_Auto_V", "Watch_Dogs"],
"MMORPG": ["Lineage_2", "Aion"],
"Shooter": ["Bulletstorm", "Splinter_Cell"],
"Racing":["Need_For_Speed_Payback", "Blur"]
}
with open("data.json", "w") as f:
json.dump(data, f)
with open('data.json', 'r') as f:
json_object = json.load(f)
shuffle
(перемешать элементы) и выбирать элемент c нулевым индексом всегда.from random import shuffle
genres = list(json_object.keys())
shuffle(genres)
genre = genres[0]
print(f'Вам выпал жанр: {genre}')
games = json_object[genre]
shuffle(games)
game = games[0]
print(f'Вам выпала игра: {game}')
pop
у списка и получим эффект выборки без замены (Но надо понимать объект json_object будет изменяться). Можно пойти и вашим путем. Осуществлять выборку индекса и выбирать по индексу, тоже нормальное решение.