给定一些 Python 中的字母数字字符串,例如
A9 B44BC1014D4我如何检查字符串是否是有效的 Excel 单元格(即字母在数字之前)?
我试过用.isalpha和.isdigit方法来“收集”字母和数字,然后用它.index来检查是否所有的字母都出现在数字之前,但是我的逻辑变得太复杂了,我觉得我没有考虑到所有的可能性。
有没有简单的方法来实现这一目标?
预期结果:
>>> is_valid_excel_cell('A9')
True
>>> is_valid_excel_cell('B44B')
False
>>> is_valid_excel_cell('C101')
True
>>> is_valid_excel_cell('4D4')
False
Run Code Online (Sandbox Code Playgroud) 我正在使用数字制作一个字符串计算器。例如: 154 + 246 = 154246
因此,用户将输入一组数字,以使用 分隔数字\n。如您所知,\n用于创建新行,但我需要将 at 用作任何普通字符串。我需要将使用的数字\n分成一个列表。
代码:
num_list = []
# this function will add a number to the list
def ask_num():
# ask for a number (we will make it a string so we can add comma and /n)
num = input("Enter numbers: ")
# run the function for asking numbers
ask_num()
Run Code Online (Sandbox Code Playgroud) 我在为这种情况想出一个优雅的解决方案时遇到了麻烦。
假设我在 Python 中有一个单元测试,它将测试可迭代对象中的几个元素。由于此迭代在内存中构建的成本很高,因此我只想通过该setUpClass方法构建一次。然后,在每个测试中,我想将迭代中的每个元素依次传递给测试,我可以使用上下文管理器和subTest方法。这一切都很好。
以下代码是一个模拟测试用例的示例,它完全按照我的描述进行操作:
import unittest
class NumberTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.numbers = []
for x in range(1000):
cls.numbers.append(x)
@classmethod
def tearDownClass(cls):
del cls.numbers
def test_number_is_even(self):
for n in self.numbers:
with self.subTest(current_number=n):
self.assertEqual(n % 2, 0)
def test_number_is_odd(self):
for n in self.numbers:
with self.subTest(current_number=n):
self.assertEqual(n % 2, 1)
def test_number_is_positive(self):
for n in self.numbers:
with self.subTest(current_number=n):
self.assertTrue(n > 0)
def test_number_is_negative(self):
for n in self.numbers:
with self.subTest(current_number=n):
self.assertTrue(n < 0)
if __name__ == …Run Code Online (Sandbox Code Playgroud)