#359 Solo tengo Python 3.5 instalado, y el comando que me dices me da syntax error.
A ver si estoy yo haciendo algo mal, yo estoy ejecutando los comandos desde python.exe o desde la cmd de windows, ¿por qué no me van los comandos?
#359 Solo tengo Python 3.5 instalado, y el comando que me dices me da syntax error.
A ver si estoy yo haciendo algo mal, yo estoy ejecutando los comandos desde python.exe o desde la cmd de windows, ¿por qué no me van los comandos?
xDD entonces no me funcionan esos comandos porque no son para Windows? Porque todo lo que me encuentro por Google para instalar packages no me funciona nada xD
yo creo que para que esos comandos los leyera windows y poder hacer las cosas habia que poner en la consola algo de path python no?
Bueno ya lo he averiguado, resulta que esos comandos los tengo que usar desde la cmd y no desde python, me estaba volviendo loco ya xD
#361 Bueno, which es un comando de Linux. Básicamente lo que hace which $comando es decirte el path completo de lo que estás ejecutano al usar ese comando. En el caso de python, which python te devolvería algo del estilo /usr/bin/python o similar.
En Windows creo que lo más similar que se me ocurre es hacer echo %PATH% y buscar el path que sepas que contiene el ejecutable en cuestión...
Alguno ha tenido alguna vez que exportar datos a pdf?
Por ejemplo, de un dataframe de pandas a pdf. Estuve mirando esta web de momento: http://pbpython.com/pdf-reports.html
Why Python Is Not My Favorite Language.
https://zenhack.net/2016/12/25/why-python-is-not-my-favorite-language.html
#371 respecto al punto 1 está claro que no permite la encapsulación total, pero para algo están el @property decorator que permite setters y getters o el definir una variable con underscore.
Si al final quieres modificar algo, python te lo deja hacer, pero eso ya depende de ti. Te da una serie de herramientas para intentar encapsular partes de una clase.
En cuanto al duck typing no estoy del todo de acuerdo, permite el polimorfismo sin necesidad de herencia. Si el que lo utiliza es un duck, entonces la cosa cambia...
#372 Yo en lo de la encapsulación estoy de acuerdo con el artículo. El resto de cosas que cita no me parecen necesariamente malas y las veo más un "miedo" de alguien que viene de JAVA o C.
Resucito esto para ver si hay algun entendido en automated testing por aqui.
Estoy haciendo unos tests en los que necesito logearme en diferentes webs (googledrive, onedrive, dropbox....) Uso python3.5, con pytest y selenium webdriver.
Para crear el driver he probado con Chrome, el cual funciona con todas mis situacion pero en un par me suelta 7 de cada 10 veces un "conexion ended remotely de forma inesperada". Con Firefox esto no me pasa y todos van bien, menos en el caso de onedrive.
En onedrive sucede lo siguiente
-arranca el navegador
-introduce usuario y pulsa siguiente
-carga la pagina en la que se introduce la contraseña
-element not visible error, pero el elemento es visible.
Analizando el codigo veo que en esa situacion las esperas las ignora completamente (incluso intente poner unas esperas implicitas para ver), se salta la espera e intenta escribir en un elemento que aun no se ha cargado -> element not found.
Os dejo aqui el codigo para ver si podeis arrojar algo de luz. El error salta en la siguiente linea
password.send_keys(psw)
Aqui os pongo otro codigo equivalente de un test que funciona sin problemas
A ver si alguien me peude sugerir alguna idea, o es que estoy ignorando algo obvio
Los de Curse (si habéis jugado al WoW la conoceréis) están contratando: https://www.curseinc.com/careers/493581
#376 Pero si lo que merece la pena es la documentación oficial únicamente.
Si no está OODH, no vale.
Os dejo un Git con muchos problemas "básicos" que se deberían saber resolver: https://github.com/donnemartin/interactive-coding-challenges
Redes neuronales creadas en Python jugando a GTA V.
[media]https://www.youtube.com/playlist?list=PLQVvvaa0QuDeETZEOy4VdocT7TOjfSA8a[/media]
A ver si me podéis echar una mano con esta chorrada suprema que no sé cómo solucionar.
Suponed que tenéis un fichero que contiene "1, 2, 3, 4". Queréis cambiar, 1 por 2, 2 por 3, 3 por 4 y 4 por 1.
Los replaces consecutivos no funcionan por razones obvias, randomizar el orden de los replaces solo empeora las cosas, y que yo sepa a .replace no puedes pasarle una lista o un diccionario diciendo "Reemplaza todo esto a la vez".
¿Se os ocurre algo que no use regex?
(EDit: En este caso sí que podríais generar otra lista de números y hacer un ", ".join(). Asumid que la estrucutra del fichero es más complicada, las cosas a reemplazar no son números y no podéis hacer cosas de esas).
#380 puedes hacer
for item in list
value = copy.deepcopy(item)
value = value + 1
item = value
no había leído el edit. no puedes hacer
copia = lista[1:]
copia.append(lista[0])
?
#381 El problema es que los números son un ejemplo, en realidad son cadenas de texto arbitrarias.
Se me acaba de encender la bombilla por cierto, resulta que vale con sustituir sólo la última ocurrencia de la cadena en lugar de todas. Así el cambio 1->2 se aplica al 1, el cambio 2->3 se aplica al 2 (Y no al 1 cambiado a 2), etc. El replace de python te deja elegir las primeras n ocurrencias de algo, así que puedes darle la vuelta a todo y elegir una ocurrencia para cambiar la última:
status=status[::-1].replace(chores[i][::-1],newchores[i][::-1],1)[::-1]
Problem solved
Yo he hecho alguna cosa con django y ahora estoy con un API Rest con django + djangorest-framework, la verdad es que me gusta bastante, lo único que no me mola, como casi cualquier framework, es que cuando te quieres salir del tiesto se complican las cosas bastante xD.
Estoy empezando a programar con Python (jamás he programado en mi vida) y estoy intentando resolver problemas sencillos. Estoy tratando un fichero csv, que posee una serie de columnas con valores (12 columnas o campos). Uno de ellos es numérico. Con la ayuda de for estoy intentando pasar por todas las líneas de esa columna para comprobar valores que tengan 0 y también para calcular el máximo y el mínimo de dicha columna. Estoy haciendo lo siguiente pero algo estaré haciendo mal. Si me podéis echar un cable os lo agradecería.
PD: este es el ejemplo para intentar conocer cuántos son nulos.
#386
Te lo corrijo un poquillo:
def leer_archivo(nombre_archivo):
nulos = 0
with open (nombre_archivo, "r") as f:
header = f.readline()
for line in f:
line = line.split(";") # Esto tiene que estar indentado, no lo pilla bien el code :_
if line[12] == "0": # Idem
nulos += 1 #Idem
El statement with es recomendado para trabajar con flujos, ya que estás empezando no te voy a soltar la chapa teórica del porqué, pero vamos, es lo recomendado xD. Simplemente lo que haces es cargar el contenido del archivo en f, luego en la siguiente linea almacenamos la cabecera por si hiciese falta en el futuro para algo o sino, pues simplemente f.readline() sin asignar el contenido en ningún lugar. Finalmente lo que se hace es recorrer linea a linea el archivo, splitearlas en un array y acceder al campo en cuestión, donde, si el valor es 0 sumaremos uno a nulos, en caso contrario no necesitas poner el else y reasignarle el valor.
Hice esto al vuelo sin testear, pero vamos, sin comentar el error concreto que te da tu código me imagino que es por el == 0, ya que el valor en la variable es un string y estás comparandolo con un entero. Espero haberte ayudado.
Un saludo.
#387 Te agradezco la respuesta. No obstante, la verdad que no he entendido la mitad de las cosas. Solo he tenido 9 días de clase de Python desde cero (sin saber apenas el concepto de programación) y ni sabía que existía el with - as. Aunque sí creo que has dado con el problema que tengo en mi código y es que estoy intentando igualar un string con un entero (0).
Ahora mi duda es la siguiente, ¿cómo puedo recorrer los valores numéricos de esa columna? es decir, ahora entiendo el problema pero a la hora de traducirlo a código me bloqueo. ¿Cuando establezco MunicipiosNulos == NulosLineas[12], no estoy asociando a esa variable la columna nº13 (que en este caso tiene más de 8000 registros numéricos)?
Cuando haces el open y luego el readlines estás almacenando las lineas en una lista, luego puedes recorrer linea a linea con un for, y tendŕas una linea a la que harás el split y cada columna se almacenará en el array, por lo que si haces line[12] estás accediendo al valor de la posición 13 en esa linea, no a todos los valores de esa columna en todas las linas, es decir, tratarás un valor, no los 8000 de golpe. Para convertir el valor del csv a número solo necesitas hacer un int o float del mismo, del tipo int(linea[12])
Un saludo.
#386 hola, acabo de leerlo y veo que ya te han respondido pero, ya que estás empezando, un pequeño consejo: por convención, los nombres de funciones y de variables deben empezar por letra minúscula. Parece una tontería pero hace más fácil la lectura del código una vez te acostumbras