input
всегда возвращает строку. Параметр, который принимает input
, это то, что будет напечатано для пользователя, как приглашение к вводу, после которого он сможет вводить данные. Вы передаёте туда int(), который возвращает 0, именно это и печатает input, как приглашение к вводу данных.print('Сколько школьников?')
лучше передать эту фразу в input, чтобы он напечатал её, как приглашение к вводу:s = input('Сколько школьников? ')
s = input('Сколько школьников? ')
s = int(s)
s = int(input('Сколько школьников? '))
Как в Python 3 работает функция int()?
int
это встроенный класс, а не функция. Да, фактически его используют как функцию, и даже в документации его можно найти в разделе built-in funcitons, но технически это класс.print(a) возвращает None
a
присваиваете результат работы метода __init__
, но этот метод никогда ничего не возвращает, он необходим, чтобы изменять состояние объекта у которого он был вызван. В самом вашем вопросе уже есть объяснение что и как работает.Так как правильно?
a = 12
a = int(12)
a = int.__new__(int, 12)
__new__
и __init__
. Python так устроен, что у всех объектов есть эти методы, они вызываются самим интерпретатором и вам не нужно делать это самостоятельно.__new__
, этот метод возвращает объект (только что созданный инстанс), и у этого объекта вызывается метод __init__
. import socket
IP = '195.62.53.149'
PORT = 27015
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.connect((IP, PORT))
sock.send(b'\xff\xff\xff\xffTSource Engine Query')
sock.settimeout(120)
text = sock.recv(1024)
print(b'res ->' + text)
> python cs_udp.py
b'recv -> \xff\xff\xff\xffI0Euro-Cs.Ru | Public | 1000FPS\x00de_dust2_2x2\x00cstrike\x00Counter-Strike\x00\n\x00\x03\x14\x00dl\x00\x011.1.2.7/Stdio\x00\x80\x87i'
import valve.source.a2s
SERVER_ADDRESS = ('195.62.53.149', 27015)
with valve.source.a2s.ServerQuerier(SERVER_ADDRESS) as server:
info = server.info()
players = server.players()
print("{player_count}/{max_players} {server_name}".format(**info))
for player in sorted(players["players"],
key=lambda p: p["score"], reverse=True):
print("{score} {name}".format(**player))
> python udp_client.py
4/20 Euro-Cs.Ru | Public | 1000FPS
39 1UP|mam?a
31 zakeman4
16 Cosmodesant
0 (А.У.Е.ШПАНА) хуй
def add_something(request):
# Создаём налету
primer = Model2.objects.create(example=Model1.create() , something2="text")
return redirect('/123')
def add_something(request):
# Достаём из базы данных существующую запись
model1 = Model1.objects.get(something1='something else', youknow='no matter')
primer = Model2.objects.create(example=model1, something2="text")
return redirect('/123')
for i in range(lenLi):
sys.stdout.write('\r')
sys.stdout.write("[%-30s] %d%%" % ('='*i, i))
sys.stdout.flush()
part = float(i)/(lenLi-1)
symbols_num = int(30 * part)
for i in range(1, lenLi):
sys.stdout.write('\r')
part = float(i)/(lenLi-1)
symbols_num = int(30 * part)
sys.stdout.write("[%-30s] %3.2f%%" % ('='*symbols_num, part*100))
sys.stdout.flush()
for x in li:
. Но, для правильного отображения прогресс-бара, вам необходимо считать номер шага. Для это можно либо завести переменную, которая будет считать шаги, либо использовать функцию enumerate:for step_number, x in enumerate(li):
for step_number, x in enumerate(li, 1):
self.calls
указывает на одно и тоже место в памяти, на оду и ту же переменную. Так как переменная в памяти это изменяемый объект, изменяя его в любом из экземпляров, вы видите измененный объект в любых других экземплярах, да и в самом классе тоже.class SubClass(object):
def __init__(self):
self.calls = set()
# coding: utf-8
import random
def ask(message, known_answers=['нет', 'да'], yes_no=True):
answer = '\n'
while answer not in known_answers:
answer = input(message)
if answer not in known_answers:
print('Возможные варианты: ', ' '.join(known_answers))
return known_answers.index(answer) if yes_no else answer
def game():
# supporting function
def _input_x():
x = None
while x is None:
try:
x = int(input('Введите x: '))
except ValueError:
print('Введите целое число')
return x
# messages
answers = ['Ответ неверный', 'Верно']
is_winner = ['К сожалению, вы проиграли', 'Вы - победитель']
# actions
actions = {'+': lambda x, i: x+i,
'-': lambda x, i: x-i,
'*': lambda x, i: x*i,
'/': lambda x, i: x/i
}
# initial values
life = 4
count = 10
# main loop
while life and count:
# condition
x = _input_x()
i = random.randint(1, 5)
print('Случайная величина = ', i)
random_action = random.choice(list(actions.keys()))
y = actions[random_action](x, i)
print('Результат действия = ', y)
# answer
answer = ask('Что это было за действие?: ',
known_answers=list(actions.keys()), yes_no=False)
# result
result = actions[answer](x, i) == y
print(answers[result])
if result:
count -= result
else:
life -= not result
print('Прав на ошибку - ', life)
# game result
print(is_winner[bool(life)])
def run():
print('Суть этой игры такова: вы указываете любое целое число x, программа выбирает случайную'
' величину и выводит на экран результат одно из четырёх действий. Ваша задача - указать'
' арифметический знак действия (сложение (+), вычитание (-), умножение (*), деление (/)),'
' полагаясь на результат. 10 Правильных ответов приведут вас к победе.')
while ask('Играем? да/нет: '):
game()
print('Всего хорошего')
if __name__ == '__main__':
run()
>>> from sys import getsizeof
>>> l = list()
>>> print getsizeof(l)
32 (в 32 битной системе)
64 (в 64 битной системе)
>>> from sys import getsizeof as gs
>>> a = int()
>>> print gs(a)
12 (в 32 битной системе)
24 (в 64 битной системе)
Это самое достойное второе издание классики.Деннис Ритчи (Dennis Ritchie) Мюррей Хилл, Нью Джерси, март 2005
не использовать внешних библиотек вроде Matplotlib
url = 'https://...'
login = 'login'
password = 'password'
s = requests.Session()
r = s.get(url, auth=(login, password))
import time
class Stopwatch:
""" Counts passed seconds """
def __init__(self):
self.init_time = time.time()
self.seconds = 0
self.last_check = self.init_time
def checkseconds(self):
now = time.time()
count = int(now - self.last_check)
mod = now - self.last_check - count
self.seconds += count
self.last_check = now - mod
import time
def stopwatch():
""" Coroutine that returns number of seconds
passed after initialization
"""
# Initialization
init_time = time.time()
seconds = 0
last_check = init_time
# Main loop
while True:
now = yield seconds
count = int(now - last_check)
mod = now - last_check - count
seconds += count
last_check = now - mod
# Создаем сопрограмму
my_watcher = stopwatch()
# Не забываем про инициализацию (первый yield)
my_watcher.send(None)
# Остальные send будут возвращать количество пройденных
# после инициализации секунд
passed_seconds = my_watcher.send(time.time())
<...>
passed_seconds = my_watcher.send(time.time())
<td>{{ item.date_in|date:"j E Y" }}</td>