gpt4 book ai didi

python - 具有相同 except 子句的两个 try 语句

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:56 24 4
gpt4 key购买 nike

假设我想在 python 3 中使用双字符串(如“A1”或“1A”)做一些事情,但首先检查它是否是任何一种形式,因为用户可能会以两种方式键入它。 (我已经有办法检查一个字符是否是一个字母。)

我将如何以最短和最简单的方式实现它?我想尝试一件事,如果失败,请在引发异常之前尝试另一件事。像这样:

x = 0
string = 'A1'
try:
x = int(string[1]) # Check that second char is a digit
# something else to check first char is a letter
else try:
x = int(string[0]) # Check that first char is a digit
# something else to check second char is a letter
except:
print('Was in neither form')

最佳答案

你可以使用一个循环:

for i in range(1, -1, -1):
try:
string[i] = int(string[i])
except ValueError:
pass
else:
break
else:
print('Was in neither form')

如果任一转换成功,则使用 break 中断循环。如果您没有使用 break,则会执行 for 循环中的 else 套件。

但是,您不能分配给字符串索引,因为它们是不可变的。更好的选择是使用正则表达式:

import re

valid_pattern = re.compile('^(?:\d[A-Z]|[A-Z]\d)$')
def is_valid(string):
return valid_pattern.match(string) is not None

关于python - 具有相同 except 子句的两个 try 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com