

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Python ejemplos
<a name="examples-python"></a>

Los siguientes ejemplos de Python Los ejemplos muestran cómo puede empezar a generar sugerencias de código en línea con Amazon Q Developer. Estos ejemplos ilustrativos le muestran cómo activar el asistente de codificación para sus propios proyectos. La mayoría de los siguientes ejemplos son aplicables a otros lenguajes:
+ [Genera clases y funciones](#classes-python)
+ [Código del documento](#code-python)
+ [Genera algoritmos](#algorithms-python)
+ [Genera pruebas unitarias](#tests-python)

## Genera clases y funciones
<a name="classes-python"></a>

 Para generar una implementación de clase total o parcial, utilice los comentarios de código. El comentario describe la intención de la clase. Comience de forma sencilla y añada más detalles si es necesario. Después de generar una clase, puede continuar generando funciones dentro de su estructura básica.

Al escribir comentarios, es preferible utilizar la estructura de comentarios del idioma. In Python, para comentarios de una sola línea, utilice `#` ***.***Para comentarios de líneas múltiples, utilice `''' '''` o`""" """`.

Input:

```
'''
DocumentReader class. has a name, children and optional parent. 
Includes I/O functions to read and
write document
'''
```

Salida:

```
class DocumentReader:
    def __init__(self, name, children, parent=None):
        self.name = name
        self.parent = parent
        self.children = children
        
    def read(self):
        """Reads current document and returns text"""
        pass
    
    def write(self, text):
        """Writes text to current document"""
        pass
```

Ahora que hay una clase inicial, se puede generar una función adicional con comentarios adicionales.

Input:

```
'''
function to read document from local directory path and print the first line of the document
'''
```

Salida:

```
def read_document(self, path):
        """Reads document from path and prints first line"""
        import os
        if os.path.isfile(path):
            with open(path, 'r') as f:
                print(f.readline())
        else:
            print(f"File not found at {path}")
```

## Código del documento
<a name="code-python"></a>

Reduzca el tiempo dedicado a la documentación del código al confiar en la documentación en línea. Add (Suma) Python pausas `''' '''` de comentarios.

Input:

```
class S3Utils:
    '''
    <place cursor here>
    '''
    def __init__(self):
        self.base_url = "https://s3"

    def generate_s3_url(self, bucket_name, region):
        return f"{self.base_url}.{region}.amazonaws.com/{bucket_name}"

# Example usage:
if __name__ == "__main__":
    s3_util = S3Utils()
    bucket_name = "my-example-bucket"
    region = "us-west-1"
    s3_url = s3_util.generate_s3_url(bucket_name, region)
    print(f"S3 URL for bucket '{bucket_name}' in region '{region}': {s3_url}")
```

Salida:

```
class S3Utils:
    '''
    Class to generate S3 URL from bucket name and region
    '''
    def __init__(self):
        self.base_url = "https://s3"

    def generate_s3_url(self, bucket_name, region):
        return f"{self.base_url}.{region}.amazonaws.com/{bucket_name}"

# Example usage:
if __name__ == "__main__":
    s3_util = S3Utils()
    bucket_name = "my-example-bucket"
    region = "us-west-1"
    s3_url = s3_util.generate_s3_url(bucket_name, region)
    print(f"S3 URL for bucket '{bucket_name}' in region '{region}': {s3_url}")
```

## Generar algoritmos
<a name="algorithms-python"></a>

Amazon Q Developer puede generar algoritmos populares, especialmente los relacionados con AWS SDKs. En el script, añada un mensaje que especifique la función que desea. 

En este ejemplo se muestra cómo generar un diccionario de claves de identificación de usuario para asignar nombres a valores y, a continuación, generar una función de ordenación mediante el algoritmo de ordenación de burbujas.

Input:

```
class SortList:
    @staticmethod
    def get_user_id_name_map():
        user_id_name_map = {
            1: "Amit",
            2: "Rahul",
            3: "Vijay",
            4: "Raj",
            5: "Kumar"
        }
        return user_id_name_map
    

    '''
    Sort the list of user id's alphabetically using bubble sort
    '''
```

Salida:

```
    @staticmethod
    def sort_user_id_name_map():
        user_id_name_map = SortList.get_user_id_name_map()
        list_of_user_ids = list(user_id_name_map.keys())
        list_of_user_names = list(user_id_name_map.values())
        print("Before sort: ", list_of_user_ids)
        for i in range(len(list_of_user_ids)):
            for j in range(len(list_of_user_ids) - i - 1):
                if list_of_user_names[j] > list_of_user_names[j + 1]:
                    list_of_user_ids[j], list_of_user_ids[j + 1] = list_of_user_ids[j + 1], list_of_user_ids[j]
                    list_of_user_names[j], list_of_user_names[j + 1] = list_of_user_names[j + 1], list_of_user_names[j]
        print("After sort: ", list_of_user_ids)
```

Además, puede crear solicitudes para los procedimientos estándar. En este ejemplo, el usuario crea un mensaje para almacenar el diccionario en una tabla de Amazon DynamoDB. Al principio del script, el usuario añade un mensaje para añadir bibliotecas de DynamoDB a fin de proporcionar contexto adicional a Amazon Q Developer.

Input:

```
'''
Add libraries for Amazon Dynamo DB
'''
```

Salida:

```
'''
Add libraries for Amazon Dynamo DB and JSON.

iMport necessary libraries for working with Amazon DynamoDB and JSON data.
'''

import boto3
import json
from botocore.exceptions import ClientError

def load_data_to_dynamodb(table_name, data_file):
    # Create a DynamoDB resource
    dynamodb = boto3.resource('dynamodb')

    # Get a reference to the table
    table = dynamodb.Table(table_name)

    # Load data from the JSON file
    with open(data_file, 'r') as file:
        data = json.load(file)

    # Iterate over the data and load it to the table
    for item in data:
        try:
            table.put_item(Item=item)
            print(f"Successfully loaded data: {item}")
        except ClientError as e:
            print(f"Error loading data: {e.response['Error']['Message']}")

# Example usage
load_data_to_dynamodb('myTable', 'data.json')
```

Ahora, el usuario puede pedir fácilmente ayuda a Amazon Q para almacenar el diccionario en DynamoDB.

Input:

```
'''
   function to store the above sorted dict to dynamodb table named users    
'''
```

Salida:

```
@staticmethod
    def store_user_id_name_map_in_dynamodb():
        user_id_name_map = SortList.get_user_id_name_map()
        list_of_user_ids = list(user_id_name_map.keys())
        list_of_user_names = list(user_id_name_map.values())
        dynamodb = boto3.resource('dynamodb')
        table = dynamodb.Table('users')
        for i in range(len(list_of_user_ids)):
            try:
                response = table.put_item(
                    Item={
                        'user_id': list_of_user_ids[i],
                        'user_name': list_of_user_names[i]
                    }
                )
            except ClientError as e:
                print(e.response['Error']['Message'])
```

## Genere pruebas unitarias
<a name="tests-python"></a>

Con los comentarios en línea, Amazon Q Developer puede generar pruebas unitarias para realizar afirmaciones y otras pruebas. En este ejemplo, el usuario pide a Amazon Q que genere las bibliotecas aplicables para las pruebas unitarias a fin de establecer el contexto del script de prueba. A continuación, el usuario pide a Amazon Q que escriba una función de prueba para la `sort_user_id_name_map` función.

Input:

```
'''
Import all the required unit test libraries for python and then generate a unit test for sort_user_id_name_map function.
'''
```

Salida:

```
import unittest
from unittest.mock import patch
from sort_user_id_name_map import sort_user_id_name_map

class TestSortUserIdNameMap(unittest.TestCase):
    @patch('sort_user_id_name_map.sort_user_id_name_map')
    def test_sort_user_id_name_map(self, mock_sort):
        mock_sort.return_value = {'id1': 'name1', 'id2': 'name2'}
        result = sort_user_id_name_map({'id2': 'name2', 'id1': 'name1'})
        self.assertEqual(result, {'id1': 'name1', 'id2': 'name2'})

if __name__ == '__main__':
    unittest.main()
```

Además, en un chat entre el usuario y el desarrollador de Amazon Q, sugiere y genera pruebas unitarias basadas en las instrucciones de entrada de código del usuario. Para obtener más información, consulte los [ejemplos de chat](examples-chat.md).