Categorías
Python

Aplicación web Python «Hello World» en Ubuntu

Esta publicación muestra cómo configurar un entorno de desarrollo web Python en Ubuntu y hacer un ejemplo de hola mundo.

Entonces, Python se ha convertido en una palabra de moda en los últimos años. Pero antes de que pueda hacer algo al respecto, necesita una aplicación de muestra de «hola mundo». En esta publicación, construiré una aplicación web de Python hello world en Ubuntu.

1. Instale el servidor Apache. Este es el servidor web que manejará las solicitudes HTTP.

Pruebe el siguiente comando y abra un navegador y escriba «localhost», si el servidor está activo, vaya al paso 2.

sudo /etc/init.d/apache2 start

Si el servidor no se está ejecutando, use el siguiente comando para instalar:

sudo apt-get install apache2

2. Instale mod_python. Este es el módulo que se utiliza para procesar archivos .py.

sudo apt-get install libapache2-mod-python

3. Configure el servidor Apache. (Si configura PHP en el servidor Apache, esto es casi lo mismo)

Incluso ahora que ha instalado mod_python en el paso 2, el servidor Apache no sabe cómo manejar archivos .py. Necesitamos agregar un controlador a part y hazlo como el siguiente:

sudo vi / etc / apache2 / sites-available / default

(¡debe estar en modo sudo para poder editar el archivo «predeterminado»!)

4. Escriba su programa «hola mundo».

sudo vi /var/www/index.py

def index(req):
  return "Hello World";

Se parece al siguiente, y tenga cuidado con la sangría.

5. Reinicie el servidor Apache y ejecute su primera aplicación web Python.

sudo /etc/init.d/apache2 reiniciar

Debería poder hacer que su aplicación web «hola mundo» funcione correctamente.

¡Felicidades!
¡Ahora puede comenzar a explorar el mundo de Python, ya sea leyendo un libro o buscando en Google!

Categorías
Python

Mensaje de error durante la instalación de PyDev para Eclipse

Versión Eclipse: Indigo
Plataforma: Ubuntu 11.10

Mensaje de error:

Se produjo un error al recopilar los elementos que se instalarán.
El contexto de la sesión fue: (perfil = epp.package.java, fase = org.eclipse.equinox.internal.p2.engine.phases.Collect, operand =, action =).
No se encontró ningún repositorio que contenga: osgi.bundle, javax.mail.glassfish, 1.4.1.v201005082020

Esto posiblemente sea causado por una versión compatible de eclipse. Si usamos Ayuda -> Eclipse MarketPlace para instalar PyDev, el problema desapareció.

Categorías
Python Versus

Java vs.Python (1): ejemplos de código simple

Algunos desarrolladores han afirmado que Python es más productivo que Java. Es peligroso hacer tal afirmación, porque puede llevar varios días probarlo a fondo. Desde una vista de alto nivel, Java se escribe estáticamente, lo que significa que todos los nombres de variables deben declararse explícitamente. Por el contrario, Python se escribe dinámicamente, lo que significa que no se requiere declaración. Existe un gran debate entre la escritura dinámica y la escritura estática en los lenguajes de programación. Esta publicación no habla de eso. Sin embargo, se debe estar de acuerdo en un punto: Python es un lenguaje interpretado con una sintaxis elegante y eso lo convierte en una muy buena opción para la creación de scripts y el desarrollo rápido de aplicaciones en muchas áreas.

En esta comparación, intentaré cubrir algunos componentes básicos del lenguaje, como cadena, flujo de control, clase, herencia, E / S de archivo, etc. Todos ellos se compararán mediante el uso de ejemplos en paralelo. Espero que esto pueda proporcionar a los programadores de Java una idea general de cómo Python y Java hacen lo mismo de manera diferente. Con un vistazo al código de abajo, podemos fácilmente darnos cuenta de que el código de Python es mucho más corto, aunque algunos «shell de clase» de Java (en Java todo comienza con una definición de clase) no están en la lista. Esta podría ser una de las razones por las que Python puede ser más productivo.

También puede consultar las bibliotecas de Python y los ejemplos de código más populares.

1. Hola mundo
Comience con el programa más simple. Java necesita muchas palabras para imprimir solo una cadena. Este es el primer ejemplo que muestra que Python es más conciso.

Java Pitón
public class Main {
  public static void main(String[] args) {
     System.out.println("hello world");
   }
}
print "hello world";

En primer lugar, hagamos lo que hagamos en Java, debemos comenzar escribiendo una clase y luego poner nuestros métodos deseados dentro. Esto a veces es muy molesto y hace perder tiempo. En Python, simplemente puede comenzar a escribir su código y luego ejecutarlo.

2. Operaciones con cadenas

public static void main(String[] args) {
  String test = "compare Java with Python";
	for(String a : test.split(" "))
	System.out.print(a);
}
a="compare Python with Java";
print a.split();

Hay muchas funciones relacionadas con cadenas en Python que son tan buenas o mejores que Java, por ejemplo, lstrip (), rstrip (), etc.

3. Control de flujo

int condition=10;
 
//if
if(condition>10)
	System.out.println("> 10");
else
	System.out.println("<= 10");
 
//while
while(condition>1){
	System.out.println(condition);
	condition--;
}
 
//switch
switch(condition){
case 1: 
System.out.println("is 1"); 
break;
case 2: 
System.out.println("is 2"); 
break;
}
 
//for
for(int i=0; i<10; i++){
	System.out.println(i);
}
condition=10;
 
# if
if condition > 10:
    print ">10";
elif condition == 10:
    print "=10";
else:
    print "<10";        
 
#while
while condition > 1:
    print condition;
    condition = condition-1;
 
#switch
def f(x):
    return {
        1 : 1,
        2 : 2,
    }[x]
print f(condition);
 
#for    
for x in range(1,10):
    print x;

4. Clase y herencia

class Animal{
	private String name;
	public Animal(String name){
		this.name = name;
	}
	public void saySomething(){
		System.out.println("I am " + name);
	}
}
 
class Dog extends Animal{
	public Dog(String name) {
		super(name);
	}	
	public void saySomething(){
		System.out.println("I can bark");
	}
}
 
public class Main {
	public static void main(String[] args) {
		Dog dog = new Dog("Chiwawa");
		dog.saySomething();
 
	}
}
class Animal():
 
        def __init__(self, name):
            self.name = name
 
        def saySomething(self):
            print "I am " + self.name    
 
class Dog(Animal):
        def saySomething(self):
            print "I am "+ self.name 
            + ", and I can bark"
 
dog = Dog("Chiwawa") 
dog.saySomething()

Cuando amplía una clase base, no hay ningún requisito, como definir un constructor explícito para el superconstructor implícito.

5. E / S de archivos

File dir = new File(".");// get current directory
File fin = new File(dir.getCanonicalPath() + File.separator
				+ "Code.txt");
FileInputStream fis = new FileInputStream(fin);
// //Construct the BufferedReader object
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine = null;
while ((aLine = in.readLine()) != null) {
	// //Process each line, here we count empty lines
	if (aLine.trim().length() == 0) {
	}
}
 
// do not forget to close the buffer reader
in.close();
myFile = open("/home/xiaoran/Desktop/test.txt")
 
print myFile.read();

Como podemos ver, hay muchas clases que necesitamos importar para simplemente leer un archivo y, además, tenemos que manejar la excepción lanzada por algunos métodos. En Python, son dos líneas.

6. Colecciones

import java.util.ArrayList;
 
public class Main {
	public static void main(String[] args) {
		ArrayList<String> al = new ArrayList<String>();
		al.add("a");
		al.add("b");
		al.add("c");
		System.out.println(al);
	}
}
aList = []
aList.append("a");
aList.append("b");
aList.append("c");
print aList;

Estas comparaciones solo se encuentran en la superficie de Python, para la programación real, el documento de Python sigue siendo el mejor lugar para consultar.

Categorías
Basics Python Versus

Java vs.Python (2): tipos de datos

Si conoce Java y desea tener una idea rápida de cómo usar Python desde el principio, el siguiente resumen puede proporcionarle una revisión rápida de los tipos de datos. También puede resultarle útil la comparación anterior de Java y Python.

Al comparar los tipos de datos entre Java y Python, puede obtener la diferencia y comenzar a usar Python rápidamente. La comparación también puede ayudar a los desarrolladores a comprender los conceptos comunes compartidos por diferentes lenguajes de programación.

Aparentemente, Java tiene más tipos / estructuras de datos que Python, por lo que enumeraré el concepto más similar de Java para los tipos de datos de Python correspondientes.

1. Cuerdas

Java Pitón
//string
String city = "New York";
String state = "California";//has to be " not '
 
String lines = "multi-line " +
		"string";
# Strings
city = "New York"
state = 'California'
 
# multi-line string
lines = """multi-line
string"""
moreLines = '''multi-line
string'''

En Python, la cadena puede residir en un par de comillas simples y en un par de comillas dobles. Admite la multiplicación: «x» * 3 es «xxx».

2. Números

Java Pitón
//integer numbers
int num = 100;
 
//floating point numbers
float f = 1.01f; 
//float f = 1.01;//wrong!
 
double d = 1.01;
# integer numbers
num = 100
num = int("100")
 
# floating point numbers
f = 1.01
f = float("1.01")
 
# null
spcial = None

En Java, cuando escribe algo como 1.01, se interpreta como un doble.
Double es un punto flotante IEEE 754 de precisión de 64 bits, mientras que float es un punto flotante IEEE 754 de precisión de 32 bits.
Como un flotante es menos preciso que un doble, la conversión no se puede realizar implícitamente.

3. Nulo

Java Pitón
//null
Object special = null;
# null
spcial = None

4. Listas

Java Pitón
//arraylist is closest with list in python
ArrayList<Integer> aList = 
  new ArrayList<Integer>();
 
//add
aList.add(1);
aList.add(3);
aList.add(2);
aList.add(4);
 
//index
int n = aList.get(0);
 
//get sub list
List<Integer> subList = 
  aList.subList(0, 2);
//1, 3
aList = []
aList = [1, 'mike', 'john']
 
#append
aList.append(2)
 
# extend
aList.extend(["new","list"])
 
print aList
#[1, 'mike', 'john', 2, 'new', 'list']
 
aList = [0,1,2,3,4,5,6]
# size
print len(aList)
#7
 
print aList[2]
#2
 
print aList[0:3]
#[0, 1, 2]
 
print aList[2:]
#[2, 3, 4, 5, 6]
 
print aList[-2]
#5
 
#lists are mutable
aList[0] = 10
print aList
#[10, 1, 2, 3, 4, 5, 6]

5. Tuplas

Java Pitón
No hay tuplas en Java.
aTuple = ()
aTuple = (5) # cause error
aTuple = (5,)
 
print aTuple
print aTuple[0]
#5

En Python, las tuplas son similares con las listas, y la diferencia entre ellas es que la tupla es inmutable. Eso significa que los métodos que cambian el valor de las listas no se pueden usar en tuplas.

Para asignar una tupla de un solo elemento, tiene que ser: aTuple = (5,). Si se quita la coma, será incorrecto.

6. Conjuntos

Java Pitón
//hashset
HashSet<String> aSet = new HashSet<String>();
aSet.add("aaaa");
aSet.add("bbbb");
aSet.add("cccc");
aSet.add("dddd");
 
//iterate over set
Iterator<String> iterator = aSet.iterator();
while (iterator.hasNext()) {
	System.out.print(iterator.next() + " ");
}
 
HashSet<String> bSet = new HashSet<String>();
bSet.add("eeee");
bSet.add("ffff");
bSet.add("gggg");
bSet.add("dddd");
 
//check if bSet is a subset of aSet
boolean b = aSet.containsAll(bSet);
 
//union - transform aSet 
//into the union of aSet and bSet
aSet.addAll(bSet);
 
//intersection - transforms aSet 
//into the intersection of aSet and bSet
aSet.retainAll(bSet); 
 
//difference - transforms aSet 
//into the (asymmetric) set difference
// of aSet and bSet. 
aSet.removeAll(bSet);
aSet = set()
aSet = set("one") # a set containing three letters
#set(['e', 'o', 'n'])
 
aSet = set(['one', 'two', 'three'])
#set(['three', 'two', 'one'])
#a set containing three words
 
#iterate over set
for v in aSet:
    print v
 
bSet = set(['three','four', 'five'])
 
#union 
cSet = aSet | bSet
#set(['four', 'one', 'five', 'three', 'two'])
 
#intersection
dSet = aSet & bSet
 
#find elements in aSet not bSet
eSet = aSet.difference(bSet)
 
#add element
bSet.add("six")
#set(['four', 'six', 'five', 'three'])

7. Diccionarios

Los diccionarios en Python son como los mapas en Java.

Java Pitón
HashMap<String, String> phoneBook = 
                        new HashMap<String, String>();
phoneBook.put("Mike", "555-1111");
phoneBook.put("Lucy", "555-2222");
phoneBook.put("Jack", "555-3333");
 
//iterate over HashMap
Map<String, String> map = new HashMap<String, String>();
for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println("Key = " + entry.getKey() +
      ", Value = " + entry.getValue());
}
 
//get key value
phoneBook.get("Mike");
 
//get all key
Set keys = phoneBook.keySet();
 
//get number of elements
phoneBook.size();
 
//delete all elements
phoneBook.clear();
 
//delete an element
phoneBook.remove("Lucy");
#create an empty dictionary
phoneBook = {}
phoneBook = {"Mike":"555-1111", 
             "Lucy":"555-2222", 
             "Jack":"555-3333"}
 
#iterate over dictionary
for key in phoneBook:
    print(key, phoneBook[key])
 
#add an element
phoneBook["Mary"] = "555-6666"
 
#delete an element
del phoneBook["Mike"]
 
#get number of elements
count = len(phoneBook)
 
#can have different types
phoneBook["Susan"] = (1,2,3,4)
 
#return all keys
print phoneBook.keys()
 
#delete all the elements
phoneBook.clear()

Más sobre las colecciones de Java:

  • Diagrama de jerarquía de colecciones
  • Conjunto: HashSet frente a TreeSet frente a LinkedHashSet
  • Lista: ArrayList vs.LinkList vs.Vector
  • Mapa: HashMap frente a TreeMap frente a Hashtable frente a LinkedHashMap

Categorías
Python

Python: convertir imagen en cadena, convertir cadena en imagen

Para almacenar o transferir una imagen, a menudo necesitamos convertir una imagen en una cadena de tal manera que la cadena represente la imagen. Al igual que otros lenguajes de programación (por ejemplo, Java), también podemos convertir una imagen en una representación de cadena en Python.

Convertir en Python es bastante sencillo, y la parte clave es usar el módulo «base64» que proporciona codificación y decodificación de datos estándar.

Convertir imagen en cadena

Aquí está el código para convertir una imagen en una cadena.

import base64
 
with open("t.png", "rb") as imageFile:
    str = base64.b64encode(imageFile.read())
    print str

Producción:

iVBORw0KGgoAAAANSUhEUgAAAuAAAACFCAIAAACVGtqeAAAAA3
NCSVQICAjb4U / gAAAAGXRFWHRTb2Z0d2FyZQBnbm9tZS1zY3Jl
ZW5zaG907wO / PgAAIABJREFUeJzsnXc81d8fx9 + ​​fe695rYwIaa

Convertir cadena en imagen

El siguiente segmento de código creará una imagen usando la cadena dada.

fh = open("imageToSave.png", "wb")
fh.write(str.decode('base64'))
fh.close()

Categorías
Python

Python lee el archivo línea por línea

¿Cómo leer un archivo de texto línea por línea usando Python?

Leer archivos en Python es extremadamente sencillo. El siguiente es el código:

with open("/path/to/file.txt") as f:
    for line in f:
        linedata = line.split('t')

Muy a menudo, es posible que desee dividir cada línea en una matriz, puede usar el split() método.

Categorías
Python

Python lee datos de la base de datos MySQL

El siguiente código puede leer datos de la base de datos MySQL.

import MySQLdb
 
# Open database connection
db = MySQLdb.connect("localhost","username","password","DBName")
 
# prepare a cursor object using cursor  method
cursor = db.cursor() 
 
sql = "select * from table1"
cursor.execute(sql)
results = cursor.fetchall() 
for row in results:
    print row[0]
 
# disconnect from server
db.close()

Categorías
Python

Fragmentos de código Python más utilizados

La sintaxis de Python puede parecer extraña al principio para los desarrolladores de Java. ¿No sería bueno si primero veamos cómo Python hace los trabajos comunes que hemos hecho usando otros lenguajes de programación, como Java? Los fragmentos de código comunes se denominan «modismos de código». Leer los modismos de código de un lenguaje de programación a menudo es útil y puede servir como un atajo para aprender un nuevo lenguaje de programación.

La intención de esta publicación es enumerar algunos de los modismos de código Python más utilizados, con la esperanza de que proporcione recomendaciones útiles para otros programadores (especialmente principiantes). Recuerde que además de los listados a continuación, existen otros fragmentos de código Python de uso frecuente. Es posible que también desee comprobar los módulos de 3000 python más populares.

* Nota: El orden no refleja la frecuencia de cada idioma de código.

# Filtrar una lista

#filter out empty strings in a sting list
list = [x for x in list if x.strip()!='']

# Leer archivo línea por línea

with open("/path/to/file") as f:
    for line in f:
        print line

# Escribir archivo línea por línea

f = open("/path/tofile", 'w')
for e in aList:
    f.write(e + "n")
f.close()

# Búsqueda de expresiones regulares

sentence = "this is a test, not testing."
it = re.finditer('\btest\b', sentence)
for match in it:
    print "match position: " + str(match.start()) +"-"+ str(match.end())

# Búsqueda de expresiones regulares

m = re.search('d+-d+', line) #search 123-123 like strings
if m:
    current = m.group(0)

# Base de datos de consultas

db = MySQLdb.connect("localhost","username","password","dbname")
cursor = db.cursor()
sql = "select Column1,Column2 from Table1"
cursor.execute(sql)
results = cursor.fetchall()
 
for row in results:
    print row[0]+row[1]
 
db.close()

# Conectar una lista con un separador específico

theList = ["a","b","c"]
joinedString = ",".join(theList)

# Filtrar elementos duplicados

targetList = list(set(targetList))

# Filtrar cadenas vacías de una lista de cadenas

targetList = [v for v in targetList if not v.strip()=='']
# or
targetList = filter(lambda x: len(x)>0, targetList)

# Agregar una lista a otra lista

anotherList.extend(aList)

# Iterar un diccionario

for k,v in aDict.iteritems():
    print k+v

# Verifique si algún elemento de una lista de cadenas aparece en una cadena de destino

if any(x in targetString for x in aList):
    print "true"

Aparentemente, no todos los modismos del código Python se muestran arriba. Le agradecería si pudiera agregar más en su comentario.

Si eres un programador de Java y eres totalmente nuevo en Python, te recomiendo que leas lo siguiente:

  • Java frente a Python (1)
  • Java frente a Python (2)

Categorías
Python

[Succinct and concise] Ubuntu 16.04 instalar Anaconda tutorial completo y éxito de prueba

Instalar Anaconda en Ubuntu 16.04

Prefacio

Si es Ubuntu 16.04, puede instalarlo directamente de acuerdo con los pasos. No hay necesidad de preocuparse por la coincidencia de versiones y otros problemas. En comparación con Windows, la instalación de Ubuntu es demasiado simple!

Descargar

Descargar dirección de la estación espejo de software de código abierto de la Universidad de Tsinghua:Portal
EncontradoAnaconda3-5.2.0-Linux-x86_64Haga clic para descargar

Instalación

Busque la ubicación donde se descarga el archivo, haga clic con el botón derecho en la ubicación actual para abrir el terminal e introduzca:

bash Anaconda3-4.2.0-Linux-x86_64.sh

A continuación, pulse Enter+yes hasta el final
Cuando desee instalar VScode al finalSe recomienda elegir no, Puede utilizar un mejor Pycharm

Variable de entorno

Una vez que la instalación se realiza correctamente, hay dos instrucciones adicionales

source ~/.bashrc
export PATH=~/anaconda3/bin:$PATH

Esta es la adición completa de variables de entorno

Prueba

Introduzca Python en el nuevo terminal y descubra que aparece la palabra Anaconda, lo que indica que la instalación se realiza correctamente.
o un nuevo terminal, ingrese:

conda --version

El resultado muestra la información de la versión, lo que también significa que la instalación se realiza correctamente

.

Categorías
Python

Colección Python

                                                                                                  Operation of Python collections

Un conjunto es una secuencia desordenada de elementos que no se repiten. Los elementos de la colección son inmutables
El propósito de la colección es almacenar diferentes valores juntos. Se utilizan diferentes colecciones para operaciones relacionales, sin tener que preocuparse por un único valor de la colección.

1. Crear una colección

#Create collection directly
name0 = {1,2,3,'Hello there','luatao'}
print(name0)
#Use the constructor set() to create a collection
name1 = set() #Create empty collection
print(name1)
#Create a collection using a list
name2 = ['nihoa',1,2]
name3 = set(name2)
print(name3)

Resultado de la salida:

{1, 2, 3, ‘Hola’, ‘luatao’}
set()
{‘nihoa’, 1, 2}

2. Configurar para eliminar la duplicación

#Create collection directly
name0 = {1,2,3,'Hello there',2,3,'luatao'}
print('Original collection:',name0)

Resultado de la salida:

Conjunto original: {‘luatao’, 1, 2, 3, ‘Hola’}

3. Visite la colección

Los elementos almacenados en la colección están desordenados y no repetitivos, por lo que no puede tener acceso a los elementos almacenados en la colección a través de índices como listas y tuplas. El acceso a los elementos de colección puede usar el operador miembro en o no para determinar si un elemento está en la colección.

#Create collection directly
name0 = {1,2,3,'Hello there','luatao'}

print('luatao' in name0)#true
print('luatao' not in name0)#false

Resultado de la salida:

Verdad
Falso

4. Añadir elementos

Agregue el elemento x al conjunto s, si el elemento ya existe, no haga nada.

#Create collection directly
name0 = {1,2,3,'Hello there','luatao'}
print('Original collection:',name0)
#Add a single element
name0.add('luatao')#Elements exist without any operation
name0.add('nihao')#Element does not exist, join the collection
print('Current collection:',name0)
#Add multiple elements List, tuple, dictionary are all the same
name0.update((2,'ada'))#Add a tuple
print('Current collection:',name0)
name0.update((2,'ada'),(3,4,5))#Add two tuples
print('Current collection:',name0)

Resultado de la salida:

Conjunto original: {1, 2, 3, ‘luatao’, ‘hello’}
Conjunto actual: {1, 2, 3, ‘luatao’, ‘hello’, ‘nihao’}
Conjunto actual: {1, 2, 3, ‘luatao’, ‘ada’, ‘hello’, ‘nihao’}
Conjunto actual: {1, 2, 3, 4, 5, ‘luatao’, ‘ada’, ‘hello’, ‘nihao’}

5. Eliminar elementos

#Create collection directly
name0 = {1,2,3,'Hello there',2,3,'luatao'}
print('Original collection:',name0)

name0.remove('luatao')#Remove luatao does not exist, an error will occur
print('remove:',name0)

name1 = {1,2,3,'Hello there',2,3,'luatao'}
name1.discard('luatao')#Remove luatao does not exist, no error will occur
print('discard:',name1)

name2 = {1,2,3,'Hello there',2,3,'luatao'}
name2.pop()#Randomly remove an element from the set
print('pop:',name2)

name3 = {1,2,3,'Hello there',2,3,'luatao'}
name3.clear()#Delete all elements in the collection
print('clear:',name3)

Resultado de la salida:

Conjunto original: {1, 2, 3, ‘luatao’, ‘hello’}
eliminar: {1, 2, 3, ‘Hola’}
descarte: {1, 2, 3, ‘Hola’}
pop: {2, 3, ‘luatao’, ‘hello’}
claro: set()

6. Establecer operaciones

Intersección, unión, complemento, subconjunto, superconjunto

#Create collection directly
name0 = {1,2,3,'a','b','c'}
name1 = {2,3,4,'b','c'}
print('Original collection name0:',name0)
print('Original collection name1:',name1)
#Intersection &
name3 = name0 & name1
print('Intersection:',name3)#name0 has it, name1 has it
#  |
name4 = name0 | name1
print('Union:',name4)#All elements
#Complement -
name5 = name0 - name1
print('Complement:',name5)#name0 has but name1 does not
#Symmetrical complement ^
name6 = name0 ^ name1
print('Symmetric complement:',name6)#name0 has but name1 does not have and name1 does not have name0 has
# >
#  <
print('Superset:',name0>name1)# Ture name0 is a superset of name1
print('Subset:',name0<name1)#false name0 is not a subset of name1

#Set equality ==
#Collection of unequal !=
print('equal:',name0 == name1)#false
print('Wait:',name0 != name1)#true

Resultado de la salida:

El nombre original del conjunto0: {1, 2, 3, ‘a’, ‘b’, ‘c’}
El nombre original del conjunto1: {2, 3, 4, ‘b’, ‘c’}
Intersección: {‘b’, ‘c’, 2, 3}
Unión: {1, 2, 3, ‘a’, 4, ‘b’, ‘c’}
Complemento: {1, ‘a’}
Complemento simétrico: {4, 1, ‘a’}
Superconjunto: Falso
Subconjunto: False
Igual: Falso
varía: Verdadero

7. Colecciones inmutables

El problema con las colecciones anidadas es que las colecciones normalmente no pueden contener valores variables como colecciones. En este caso, es posible que desee utilizar un conjunto inmutable (conjunto congelado). Excepto que el valor no se puede cambiar, los conjuntos inmutables y los conjuntos mutables son muy similares. Puede utilizar «frozenset()» para crear un conjunto inmutable.

name0 = frozenset()#Create an empty fixed collection
print(name0)
name1 = frozenset([1,2,3,4])#Use iterable objects to create a fixed collection
print(name1)

Resultado de la salida:

frozenset()
frozenset({1, 2, 3, 4})
Es importante recordar que una de las principales desventajas de los conjuntos inmutables es que son inmutables, lo que significa que no puede agregarles elementos ni eliminar elementos de ellos. .

8. Funciones integradas de la colección

Método Descripción
set.add(elmnt) El método add() se utiliza para agregar elementos a la colección. Si el elemento agregado ya existe en la colección, no se realiza ninguna operación.
set.clear() El método clear() se utiliza para eliminar todos los elementos de la colección.
set.copy() El método copy() se utiliza para copiar una colección.
set.difference(set) El método difference() se utiliza para devolver la diferencia del conjunto, es decir, los elementos de conjunto devueltos están contenidos en el primer conjunto, pero no en el segundo conjunto (parámetro del método).
set.difference_update(set) El método difference_update() se utiliza para quitar los elementos que existen en ambos conjuntos. La diferencia entre el método difference_update() y el método difference() es que el método difference() devuelve una nueva colección con los mismos elementos quitados, mientras que el método difference_update() quita directamente los elementos de la colección original sin devolver un valor.
set.discard(valor) El método discard() se utiliza para quitar el elemento de colección especificado. Este método es diferente del método remove() porque el método remove() causará un error al quitar un elemento inexistente, mientras que el método discard() no lo hará.
set.remove(item) El método remove() se utiliza para quitar el elemento especificado en la colección. Este método es diferente del método discard() porque el método remove() causará un error al quitar un elemento inexistente, mientras que el método discard() no lo hará.
set.pop() El método pop() se utiliza para eliminar aleatoriamente un elemento.
set.update(set) El método update() se utiliza para modificar la colección actual. Puede agregar nuevos elementos o colecciones a la colección actualIon. Si el elemento agregado ya existe en la colección, el elemento solo aparecerá una vez y los duplicados se omitirán.
set.union(set1, set2…) El método union() devuelve la unión de los dos conjuntos, es decir, contiene todos los elementos del conjunto y los elementos repetidos solo aparecerán una vez.
set.intersection(set1, set2 … etc.) El método intersection() se utiliza para devolver los elementos contenidos en dos o más conjuntos, es decir, la intersección.
set.intersection_update(set1, set2 … etc.) El método intersection_update() se utiliza para obtener elementos que se superponen en dos o más conjuntos, es decir, para calcular la intersección. El método intersection_update() es diferente del método intersection(), porque el método intersection() devuelve un nuevo conjunto, mientras que el método intersection_update() quita elementos no superpuestos del conjunto original.
set.symmetric_difference(set) El método symmetric_difference() devuelve una colección de elementos únicos en las dos colecciones, es decir, quita los elementos que existen en ambas colecciones.
set.symmetric_difference_update(set) El método symmetric_difference_update() quita los mismos elementos en otro conjunto especificado en el conjunto actual e inserta elementos diferentes en otro conjunto especificado en el conjunto actual.
set.isdisjoint(set) El método isdisjoint() se utiliza para determinar si dos conjuntos contienen los mismos elementos, si no, devuelve True, de lo contrario devuelve False. .
set.issubset(set) El método issubset() se utiliza para determinar si todos los elementos de la colección se incluyen en la colección especificada, si es así, devuelve True, de lo contrario devuelve False.
set.issuperset(set) El método issuperset() se utiliza para determinar si todos los elementos de la colección especificada están contenidos en la colección original, si es así, devuelve True, de lo contrario devuelve False.
name0 = {1,2,'a','b,','luatao',3.3,'Lu Atao'}
print('Initial collection:',name0)

name0.add('ds') #Add a 5, if it already exists, do not execute
print('add:',name0)

name0.clear()#Empty elements
print('clear:',name0)

name1 = {1,2,'a','b,','luatao',3.3,'Lu Atao'}
name2 = name1.copy()#copy
print('copy:',name2)

name3 = {1,2,3}
name4 = {2,3,4}
print('difference:',name3.difference(name4))# name3-name4

name5 = {1,2,3,4,5,6}
name6 = {2,3,4,1}
name5.difference_update(name6)
print('difference_update:',name5)#Remove elements contained in both sets

name7 = {2,3,4,1}
name7.discard(4)#Delete 4
print('discard:',name7)#

name8 = {2,3,4,1}
name8.remove(4)#Delete 4
print('remove:',name8)#

name9 = {2,3,4,1}
x = name9.pop()#Randomly delete an element
print('The pop-up value:',x)
print('pop:',name9)#

name10 = {2,3,4,1}
name11 = ['nihoa','Hello there',3,4,5]
name10.update(name11)#Add name11 to name10
print('update:',name10)#

name12 = {1,2,'a'}
name13 = {1,3,4,'b'}
name14 = {3,4,'c'}
name15 = name12.union(name13)#Two sets merge
print('union:',name15)
name16 = name12.union(name13,name14)#Three sets merge
print('union:',name16)

name17 = {1,2,'a'}
name18 = {1,3,4,'b'}
name19 = {3,4,'c'}
name20 = name17.intersection(name18)#Two sets intersect
print('intersection:',name20)
name21 = name17.intersection(name18,name19)#Three sets of intersection
print('intersection:',name21)

name22 = {1,2,'a'}
name23 = {1,3,4,'b'}
name24 = {3,4,'c',1}
name22.intersection_update(name23)#Two sets intersect
print('intersection_update:',name22)
name22.intersection_update(name23,name24)#Three sets of intersection
print('intersection_update:',name22)

name25 = {1,2,3,4,5,6}
name26 = {2,3,4,1}
name27 = name25.symmetric_difference(name26)
print('symmetric_difference:',name27)#Remove elements contained in both sets

name28 = {1,2,3,4,5,6}
name29 = {2,3,4}
name28.symmetric_difference_update(name29)
print('symmetric_difference_update:',name28)#Remove the duplicate elements in the original set x and the y set, and insert the non-repeated elements into the set x:

name30 = {1,2,3,4,5,6}
name31 = {2,3,4}
name32 = name30.isdisjoint(name31)#Does not contain return true contains contains returns false
print('isdisjoint:',name32)#Judging whether there is an element in the set y that contains the set x:

name33 = {1,2,3,4,5,6}
name34 = {2,3,4}
name35 = name33.issubset(name34)#Both contain return true, otherwise return false
print('issubset:',name35)#Judge whether all elements of set x are included in set y:

name36 = {1,2,3,4,5,6}
name37 = {2,3,4}
name38 = name36.issuperset(name37)#Both contain return true, otherwise return false
print('issuperset:',name38)#Judge whether all elements of set y are included in set x:

Resultado de la salida:

Conjunto inicial: {1, 2, 3.3, ‘luatao’, ‘a’, ‘b’, ‘Luatao’}
añadir: {1, 2, 3.3, ‘luatao’, ‘ds’, ‘a’, ‘b’, ‘Luatao’}
claro: set()
copia: {1, 2, 3.3, ‘b’, ‘Lu Atao’, ‘luatao’, ‘a’}
diferencia: {1}
difference_update: {5, 6}
descarte: {1, 2, 3}
eliminar: {1, 2, 3}
Valor emergente: 1
pop: {2, 3, 4}
actualización: {1, 2, 3, 4, 5, ‘nihoa’, ‘hello’}
unión: {1, 2, 3, 4, ‘b’, ‘a’}
unión: {1, 2, 3, 4, ‘a’, ‘c’, ‘b’}
intersección: {1}
intersección: set()
intersection_update: {1}
intersection_update: {1}
symmetric_difference: {5, 6}
symmetric_difference_update: {1, 5, 6}
isdisjoint: Falso
issubset: Falso
issuperset: Verdadero

Después de comer, vine a escribir y trabajé más de una hora. Sudando profusamente, espero que valga la pena.

.