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 (А.У.Е.ШПАНА) хуй
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 битной системе)
не использовать внешних библиотек вроде 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())