Red de conocimiento informático - Problemas con los teléfonos móviles - La entrada de Python3.4.0 no puede convertir implícitamente el objeto "int" en una cadena. ¿Cómo generarlo correctamente?

La entrada de Python3.4.0 no puede convertir implícitamente el objeto "int" en una cadena. ¿Cómo generarlo correctamente?

La entrada de Python 3.X por defecto es cadenas, por lo que "g 65" debe cambiarse a "int (g) 65". ¿La diferencia entre Python 3.x y Python 2.x

1?

Py3.0 es 30 veces más lento que Py2.5 cuando se ejecuta el punto de referencia de pystone. Guido cree que Py3.0 tiene mucho espacio para la optimización en operaciones de cadenas y enteros, y puede lograr buenos resultados de optimización.

El rendimiento de Py3.1 es 15 veces más lento que el de Py2.5 y todavía hay mucho margen de mejora.

2. ¿Codificación?

Los archivos fuente Py3.X utilizan codificación utf-8 de forma predeterminada, por lo que los siguientes códigos son legales:?

gt; China = 'china'?

gt;gt;gt; print(china)?

china?

3. ¿Gramática?

1) Eliminar lt;gt; y reemplazar todo con ! =?

2) Eliminar `` y reemplazar todo con repr()?

3) Agregar palabras clave como y con, y ¿Verdadero, Falso, Ninguno?

5) Agregar declaraciones no locales. ¿Usar noclocal x para asignar valores directamente a variables periféricas (no globales)?

6) Elimine la declaración de impresión y agregue la función print() para lograr el mismo propósito. De manera similar, ¿se ha cambiado la declaración ejecutiva a la función exec()?

Ejemplo:?

2.X: print "La respuesta es", ¿2*2?

3.X: print("La respuesta es" , 2*2)?

2.X: imprimir x, ?

2.X: imprimir x, ?

3.X: imprimir(x , end=" ") # ¿Usar espacios en lugar de saltos de línea?

2.X: imprimir # ¿Salir carácter de nueva línea?

3.X: print() ?# ¿Salir nueva línea?

2.X: imprimir gt;gt;sys.stderr, ¿"error fatal"?

3.X: imprimir("error fatal", archivo=sys.stderr)?

2.X: imprimir (x, y) ?# salida repr((x, y))?

3.X: imprimir((x, y)) # y ¡print(x, y) es diferente!

7) ¿Cambió el comportamiento de los operadores secuenciales (como xlt; y) para generar un TypeError cuando los tipos x e y no coinciden, en lugar de devolver el valor bool correspondiente?

8) Cambió la función de entrada, eliminó raw_input y la reemplazó con entrada:

2.X: adivina = int(raw_input('Ingrese un número entero: '))# ¿Leer la entrada del teclado?

3.X: adivinar = int(input('Ingrese un número entero: '))

9) Eliminar el descomprimido del parámetro de tupla.

¿Ya no puedes usar def(a, (b, c)): pass para definir la función de esta manera?

10) Nuevo estilo para variables de palabras octales, ¿modificar la función oct() en consecuencia?

2.

3. )?

gt;gt;gt; 0o666?

438?

gt;gt;gt( 438)?

'0o666'?

11) ¿Se agregaron literales binarios y función bin()?

gt; gt; bin(438)?

'0b110110110'?

gt;gt;gt; ?

'0b110110110'?

12) Desempaquetado iterable extendido. En Py3.

13) El nuevo super() ya no puede pasar parámetros a super().

gt; gt; gt; clase C(objeto):?

def __init__(self, a):?

print('C', a )?

gt; gt; gt; clase D(C):?

def __init(self, a):?

super().__init__ (a) # ¿Llamar a super() sin parámetros?

gt;gt;gt; D(8)?

C 8?

lt; __main__.D objeto, ubicado en 0x00D7ED90gt;?

14) Nueva sintaxis de metaclase:?

class Foo(*bases, **kwds):?

pass

15) Clase admitida decorador. El uso es el mismo que el decorador de funciones: ?

gt; gt; def foo(cls_a):?

def print_func(self):?

print ('¡Hola mundo!')?

cls_a.print = print_func

¿devolver cls_a?

pasar

gt ; gt;gt; C().print()?

¡Hola mundo!

Los decoradores de clases se pueden utilizar para jugar cartas grandes con civetas.

4. ¿Cadenas y cadenas de bytes?

1) Las cadenas ahora solo tienen un tipo, str, pero es básicamente lo mismo que Unicode en la versión 2.x.

2) Para cadenas de bytes, consulte el elemento 2 de la sección "Tipos de datos".

5. ¿Tipo de datos?

1) Py3.X eliminó el tipo largo y ahora solo hay un tipo entero, int, pero se comporta como largo en la versión 2.X.

2) Se agregó un nuevo tipo, byte, que corresponde a la cadena octal en la versión 2.X.

gt; gt; b = b'china'?

gt; gt; tipo(b)?

lt; 'gt;?

Los objetos str y bytes se pueden convertir entre sí usando los métodos .encode() (str -gt; bytes) o .decode() (bytes -gt; str).

gt; gt; s = b.decode()?

gt; gt; s?

'china'?

gt; gt; b1 = s.encode()?

gt; gt; b1?

b'china'?

3) Los métodos .keys(), .items y .values() de dict devuelven iteradores, mientras que las funciones anteriores (como iterkeys()) han quedado obsoletas.

dict.has_key() también ha sido eliminado y reemplazado por in?

6.

1) Introducción de clases base (Abstraact Base Classes, ABC) .

2) Las clases de contenedor y las clases de iterador están ABCizadas, por lo que hay muchos más tipos en el módulo cellections que en Py2.5.

gt;gt;gt; ¿importar colecciones?

gt;gt;gt; print('\n'.join(dir(colecciones)))?

Invocable

Contenedor

Hashable

ItemsView

Iterable

Iterador

KeysView

¿Mapeo?

¿MapeoView?

¿Mapeo mutable?

¿Secuencia mutable?

¿MutableSet?

¿Tupla con nombre?

¿Secuencia?

¿Establecer?

¿Programado?

¿Tamaño?

¿ValuesView?

¿__todos__?

__incorporados__?

__doc__?

__archivo__?

__nombre__?

_abcoll?

_itemgetter?

_sys?

¿dictado predeterminado?

¿deque?

Además, el tipo numérico es ABC. Para más información sobre estos dos puntos, ver PEP 3119 y PEP 3141.

3) ¿Cambiar el nombre del método next() del iterador a __next__() y agregar la función incorporada next() para llamar al método __next__() del iterador?

4) ¿Lo haría? ¿Sería más conveniente escribir métodos abstractos (propiedades) agregando dos decoradores @abstractmethod y @abstractproperty?

7. ¿Anormal?

1) ¿Dejar que la excepción herede de BaseException y eliminar StardardError?

2) ¿Eliminar el comportamiento de secuencia y el atributo .message de la clase de excepción?

3) ¿Reemplazar la excepción de aumento con la excepción de aumento (args), sintaxis de argumentos?

4) Cambie la sintaxis para detectar excepciones e introduzca palabras clave en Py2.5 para identificar instancias de excepción:?

gt; try:?

... generar NotImplementedError('Error')?

... excepto NotImplementedError, error:

... imprimir error.mensaje?

¿Error?

En Py3.0:?

gt;gt;gt; intente:?

raise NotImplementedError('Error')?

excepto NotImplementedError como error:

print(str(error))?

¿Error?

5) __context__ no está implementado en la versión 3.0a1, así que sí. ¿Hay una cadena anormal?

8. ¿Cambios de módulo?

1) El módulo cPickle ha sido eliminado y puede ser reemplazado por el módulo pickle. Finalmente tendremos un módulo transparente y eficiente.

2) ¿Eliminar el módulo imageop?

3) Eliminar audiodev, Bastion, bsddb185, excepción, linuxaudiodev, md5, MimeWriter, mimify, popen2, ?

rexec, set, sha, stringold, strop, sunaudiodev, timing y módulo xmllib?

4) ¿Se eliminó el módulo bsddb (lanzado por separado y disponible en http://www.jcea.es/programacion/pybsddb.htm)?

5) ¿Eliminar nuevo módulo?

6) ¿Se moverán las funciones os.tmpnam() y os.tmpfile() al módulo tmpfile?

7) El módulo tokenize ahora puede funcionar con bytes.

¿El punto de entrada principal ya no es generate_tokens sino tokenize.tokenize()?

9 ¿Otros?

1) xrange() pasa a llamarse range(). Para usar range() para obtener una lista, debes llamar explícitamente: ?

gt; range(10) )?

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]?

2) Los objetos de bytes no se pueden aplicar hash y No se admiten los métodos b.lower(), b.strip() y b.split(), pero para los dos últimos métodos, puede usar b.strip(b'?b'?).

\n\tr \f') y b.split(b'' ') ¿tienen el mismo propósito?

3) zip(), map() y filter() devuelven iteradores. Además, se han eliminado las funciones apply(), callable(), coerce(), execfile(), reduce() y reload?

().

hasattr() puede ahora se puede utilizar Reemplazar invocable(). La sintaxis de hasattr() es la siguiente: hasattr(string, '__name__')

4) string.letter y las mayúsculas y minúsculas relacionadas se han eliminado. Utilice funciones como string.ascii_letters en su lugar. ?

5) Si los valores de x < y no se pueden comparar, ¿se generará una excepción TypeError?

6) El miembro de la familia __getslice__ ha quedado obsoleto. a[i:j] se convertirá en a.__getitem__(slice(I, j)) o __setitem__ según el contexto.

¿__delitem__ llamar?

7) En Py2.5, la clase de archivo ha quedado obsoleta: ?

gt;gt;gt; file?

lt;type 'file ' gt;?

En Py3.X: ?

gt;gt;gt; archivo?

Rastreo (última llamada más reciente):?

Archivo "lt;pyshell#120gt;", línea 1, en

¿Archivo?

NameError: el nombre 'archivo' no está definido.