Для python, как мы можем сохранить целочисленную переменную в range ()? [Дубликат]

проверить это решение на подключение удаленно, когда вы получаете сообщение об ошибке 10060

http://forums.mysql.com/read.php?34,49742,239961

http://www.bigresource.com/VB-Remote-MySQL-Server-h6Z8Cbaszz.html#

MySQL очень легко настраивает удаленные подключения. Однако вы должны настроить MySQL, чтобы разрешить пользователям. Другое дело, убедитесь, что порт 3306 открыт на хосте. Если это не так, то вы не можете подключиться к MySQL. Самый простой способ сделать это - ...

telnet myhost 3306

Если вы получите что-то вроде ..., 3.23.54-log▬I_ & amp;: 309i☻

, тогда порт 3306 открыт и MySQL слушает.

Затем убедитесь, что ваш userid настроен для разрешения доступа на сервере MySQL. Вы можете сделать это с помощью программного обеспечения клиента mysql или программного обеспечения mysqlcc.

Надеемся, что это поможет

202
задан martineau 21 May 2017 в 01:40
поделиться

15 ответов

Python 2.x

Для ввода пользовательских данных использовались две функции: input и raw_input . Разница между ними заключается в том, что raw_input не оценивает данные и не возвращает их в виде строки. Но input будет оценивать все, что вы ввели, и результат оценки будет возвращен. Например,

>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)

Данные 5 + 17 оцениваются, а результат - 22. Когда он оценивает выражение 5 + 17, он обнаруживает, что вы добавляете два числа, и поэтому результат будет иметь одинаковый тип int. Таким образом, преобразование типа выполняется бесплатно, а 22 возвращается в результате input и сохраняется в переменной data. Вы можете думать о input как raw_input, состоящем из вызова eval .

>>> data = eval(raw_input("Enter a number: "))
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)

Примечание: вы должны быть осторожны, когда используете input в Python 2.x. Я объяснил, почему нужно быть осторожным при его использовании, в этом ответе .

Но raw_input не оценивает ввод и возвращает его как строку, как строку.

>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = raw_input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <type 'str'>)

Python 3.x

Python 3.x input и Python 2.x raw_input похожи, а raw_input недоступен в Python 3.x.

>>> import sys
>>> sys.version
'3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <class 'str'>)

Решение

Чтобы ответить на ваш вопрос, поскольку Python 3.x не оценивает и не конвертирует тип данных, вам необходимо явно преобразовать его в int s, с int , как это

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Вы можете принимать номера любой базы и преобразовывать их непосредственно в base-10 с помощью функции int, например

>>> data = int(input("Enter a number: "), 8)
Enter a number: 777
>>> data
511
>>> data = int(input("Enter a number: "), 16)
Enter a number: FFFF
>>> data
65535
>>> data = int(input("Enter a number: "), 2)
Enter a number: 10101010101
>>> data
1365

Второй параметр указывает, что является базой введенных чисел, а затем внутренне понимает и преобразует его. Если введенные данные ошибочны, он выдаст ValueError.

>>> data = int(input("Enter a number: "), 2)
Enter a number: 1234
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '1234'

Кроме того, ваша программа может быть немного изменена, например

while True:
    ...
    ...
    if input("Play again? ") == "no":
        break

Вы можете избавиться от переменной play, используя break и while True.

PS: Python не ожидает ; в конце строки:)

210
ответ дан Community 15 August 2018 в 23:03
поделиться
  • 1
    Есть ли другой способ, как функция или что-то такое, что нам не нужно преобразовывать в int в 3.x, кроме того, что явное преобразование в int? – Shreyan Mehta 9 April 2016 в 06:19
  • 2
    @ShreyanMehta eval будет работать, но не пойду на это, если у вас нет насущных причин. – thefourtheye 9 April 2016 в 07:01
  • 3
    Не могли бы вы добавить версию tl; dr в начало ответа? Это длинный ответ, и я считаю, что многие не потрудились его прочитать и будут просто использовать input() и eval(input()) – Elazar 13 November 2017 в 02:19
  • 4
    @thefourtheye хотя бы использовать ast.literal_eval для этого. У него нет проблем безопасности eval. – spectras 6 April 2018 в 12:48
  • 5
    Я использую этот Q & amp; A как цель обмана, но, возможно, вы можете добавить TDLR с решением python 3, то есть int(input() ... вверху? Python 2 близится к концу своей жизни, а информация о python 3 слишком похожа на IMO – Chris_Rands 24 July 2018 в 14:36

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

Пока int(input()) достаточно для одного целого числа, я не нашел прямого способа ввода двух целых чисел. Я пробовал это:

num = input()
num1 = 0
num2 = 0

for i in range(len(num)):
    if num[i] == ' ':
        break

num1 = int(num[:i])
num2 = int(num[i+1:])

Теперь я использую num1 и num2 как целые числа. Надеюсь, это поможет.

2
ответ дан Aravind 15 August 2018 в 23:03
поделиться
  • 1
    Это выглядит очень интересно. Однако, не i уничтожен, когда цикл for завершен? – Hosch250 23 May 2014 в 17:33
  • 2
    @hosch250 Когда цикл завершен, значение индексной переменной (здесь i) остается. Я попробовал эту штуку, и она работает правильно. – Aravind 24 May 2014 в 16:18
  • 3
    Для такого рода манипулирования вводами вы можете либо num1, num2 = map(int, input().split()), если знаете, сколько целых чисел вы встретите, или nums = list(map(int, input().split())), если вы этого не сделаете. – Mathias Ettinger 12 July 2018 в 12:58

Несколько вопросов требуют ввода нескольких целых чисел в одной строке. Лучший способ - ввести всю строку чисел одну строку, а затем разделить на целые числа.

 p=raw_input()
    p=p.split()      
    for i in p:
        a.append(int(i))
8
ответ дан Dan Neely 15 August 2018 в 23:03
поделиться

По умолчанию функция ввода принимает входные данные в качестве формата строки

для другого типа данных, который вы должны вводить пользователю

. В Python 2 мы используем функцию raw_input (). он ждет, когда пользователь наберет какой-то ввод и нажмите «возврат», и нам нужно сохранить значение в переменной путем кастинга в качестве нашего типа данных желания. Будьте осторожны при использовании литья типа

x = raw_input("Enter a number: ") #String input
x = int(raw_input("Enter a number: ")) #integer input 
x = float(raw_input("Enter a float number: ")) #float input 
x = eval(raw_input("Enter a float number: ")) #eval input

В Python 3 мы используем функцию input (), которая возвращает значение входного пользователя

x = input("Enter a number: ") #String input

, если вы вводите строку, int, float , eval будет принимать в качестве ввода строки

x = int(input("Enter a number: ")) #integer input 

, если вы введете строку для int cast ValueError: недействительный литерал для int () с базой 10:

x = float(input("Enter a float number: ")) #float input

, если вы введите строку для float cast ValueError: не удалось преобразовать строку в float

x = eval(input("Enter a float number: ")) #eval input

, если вы введете строку для eval cast

NameError: name '' не определено

Эти ошибки также применимы для python 2

1
ответ дан Derlin 15 August 2018 в 23:03
поделиться

Python 3.x имеет функцию input(), которая всегда возвращает строку. Поэтому вы должны преобразовать в int

python 3.x

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

python 2.x

В функциях python 2.x raw_input() и input() всегда возвращает строку, поэтому вы должны также преобразовать их в int.

x = int(raw_input("Enter a number: "))
y = int(input("Enter a number: "))
4
ответ дан Harun ERGUL 15 August 2018 в 23:03
поделиться

В Python 3.x, raw_input был переименован в input, а Python 2.x input удален.

Это означает, что так же, как raw_input, input в Python 3.x всегда возвращает строковый объект.

Чтобы устранить проблему, вам нужно явно вставить эти вводы в целые числа, поместив их в int :

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Кроме того, Python не нужен / не использует точки с запятой для завершения строк. Итак, если они не делают ничего позитивного.

28
ответ дан iCodez 15 August 2018 в 23:03
поделиться

В Python 3.x. По умолчанию функция ввода принимает входные данные в строчном формате. Чтобы преобразовать его в целое число, вам нужно включить int (input ())

x=int(input("Enter the number"))
4
ответ дан Madhusudan chowdary 15 August 2018 в 23:03
поделиться

input() (Python 3) и raw_input() (Python 2) всегда возвращают строки. Преобразуйте результат в целое число с помощью int().

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Pro tip: в Python не нужны полуколоны.

13
ответ дан Martijn Pieters 15 August 2018 в 23:03
поделиться
n=int(input())
for i in range(n):
    n=input()
    n=int(n)
    arr1=list(map(int,input().split()))

цикл for должен запускать 'n' количество раз. вторая «n» - длина массива. последний оператор отображает целые числа в список и принимает входные данные в форме, разделенной пробелом. вы также можете вернуть массив в конце цикла for.

0
ответ дан ravi tanwar 15 August 2018 в 23:03
поделиться

Принимая int в качестве входа в python: мы берем простой строковый ввод, используя:

input()

теперь мы хотим int как input.so мы выводим эту строку в int. просто используя:

int(input())
5
ответ дан Rohit-Pandey 15 August 2018 в 23:03
поделиться
def dbz():
    try:
        r = raw_input("Enter number:")
        if r.isdigit():
            i = int(raw_input("Enter divident:"))
            d = int(r)/i
            print "O/p is -:",d
        else:
            print "Not a number"
    except Exception ,e:
        print "Program halted incorrect data entered",type(e)
dbz()

Or 

num = input("Enter Number:")#"input" will accept only numbers
2
ответ дан Sanyal 15 August 2018 в 23:03
поделиться

Хотя в вашем примере int(input(...)) делает трюк в любом случае, python-future 's builtins.input заслуживает внимания, поскольку это гарантирует, что ваш код работает как для Python 2, так и для 3 и отключает поведение Python2 по умолчанию input, пытающееся быть «умным» относительно типа входных данных (builtins.input в основном ведет себя как raw_input).

2
ответ дан Tobias Kienzler 15 August 2018 в 23:03
поделиться

Для нескольких целых чисел в одной строке карта может быть лучше.

arr = map(int, raw_input().split())

Если число уже известно (например, 2 целых числа), вы можете использовать

num1, num2 = map(int, raw_input().split())
18
ответ дан user1341043 15 August 2018 в 23:03
поделиться

Да, в python 3.x, raw_input заменяется на input. Чтобы вернуться к старому поведению input, используйте:

eval(input("Enter a number: "))

Это позволит питону знать, что введенный ввод является целым числом

0
ответ дан Waseem Akhtar 15 August 2018 в 23:03
поделиться
  • 1
    Это верно? – tjt263 8 March 2016 в 14:46
  • 2
    Да, вы можете попробовать – Waseem Akhtar 3 July 2016 в 11:26
  • 3
    Это позволит питону знать, что введенный ввод является целым числом , это может быть намного хуже, чем целое число. – Padraic Cunningham 18 October 2016 в 17:52

Преобразовать в целые числа:

my_number = int(input("enter the number"))

Аналогично для чисел с плавающей запятой:

my_decimalnumber = float(input("enter the number"))
4
ответ дан xlm 15 August 2018 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: