Maison >Problème commun >Comment convertir une chaîne en type int

Comment convertir une chaîne en type int

zbt
zbtoriginal
2023-08-02 10:59:517742parcourir

En programmation, nous rencontrons souvent des situations où nous devons convertir une chaîne (str) en un entier (int). Cela peut être dû au fait que nous devons effectuer des calculs numériques sur des chaînes ou convertir les chaînes saisies par l'utilisateur en nombres entiers pour le traitement. Cet article va vous montrer comment convertir une chaîne en entier.

1. Utilisez la fonction intégrée int()

Python fournit une fonction intégrée int() qui peut être utilisée pour convertir des chaînes en entiers. La syntaxe de base de cette fonction est la suivante :

int(string, base)

Parmi eux, string est la chaîne à convertir, et base est un paramètre facultatif, indiquant la base de la chaîne. Si la base n'est pas spécifiée, la valeur par défaut est décimale.

Pour convertir une chaîne en entier, utilisez simplement la fonction int() en passant la chaîne en paramètre. Un exemple est le suivant :

num_str = "123" # 定义一个字符串
num_int = int(num_str) # 将字符串转换为整数
print(num_int) # 输出:123
print(type(num_int)) # 输出:

2. Utilisez try-sauf pour gérer les exceptions

Lors de la conversion d'une chaîne en entier, vous pouvez rencontrer des problèmes. Par exemple, la chaîne contient des caractères non numériques ou la valeur représentée par la chaîne dépasse la plage d'entiers. Pour éviter que le programme ne plante pendant la conversion, nous pouvons utiliser des instructions try-sauf pour gérer les exceptions.

Lors de l'utilisation de la fonction int() pour convertir une chaîne, si une exception se produit, Python déclenchera une exception ValueError. Par conséquent, nous pouvons utiliser try-sauf pour intercepter cette exception et la gérer en conséquence.

num_str = "abc" # 包含非数字字符的字符串
try:
num_int = int(num_str)
print(num_int)
except ValueError:
print("字符串不能转换为整数")

Dans l'exemple ci-dessus, puisque la chaîne contient le caractère non numérique "abc", la fonction int() ne peut pas le convertir en entier, donc une exception ValueError est levée. Dans le bloc except, nous générons un message d'invite correspondant.

3. Utilisez des expressions régulières

Une autre façon de convertir une chaîne en entier consiste à utiliser des expressions régulières. Les expressions régulières sont un puissant outil de correspondance de modèles qui peut être utilisé pour extraire des modèles spécifiques à partir de chaînes.

Nous pouvons utiliser la fonction findall() dans le module re pour trouver le modèle numérique dans la chaîne et l'extraire. Nous pouvons ensuite utiliser la fonction int() pour convertir la liste de chaînes extraite en entiers.

import re
num_str = "I have 123 apples" # 包含数字的字符串
numbers = re.findall(r'\d+', num_str) # 使用正则表达式查找数字模式
int_list = [int(num) for num in numbers] # 将字符串列表转换为整数列表
print(int_list) # 输出:[123]

Dans l'exemple ci-dessus, l'expression régulière r'd+' signifie faire correspondre un ou plusieurs caractères numériques. La fonction findall() renvoie une liste de toutes les chaînes correspondantes. Nous utilisons ensuite des compréhensions de liste pour convertir ces chaînes en entiers.

Résumé :

Cet article présente trois méthodes pour convertir des chaînes en entiers. L'utilisation de la fonction int() est la méthode la plus courante, mais vous devez faire attention à la gestion des exceptions. Utilisez des expressions régulières pour extraire des modèles numériques dans des chaînes et les convertir en entiers. Dans les applications réelles, choisissez la méthode la plus appropriée pour convertir des chaînes en entiers en fonction de la situation spécifique. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn