小编jfa*_*oni的帖子

检查 Python 字符串是否是有效的 Excel 单元格

给定一些 Python 中的字母数字字符串,例如

  • A9
  • B44B
  • C101
  • 4D4

我如何检查字符串是否是有效的 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)

python string excel openpyxl

3
推荐指数
1
解决办法
530
查看次数

在 Python 中使用 \n 作为普通字符串

我正在使用数字制作一个字符串计算器。例如: 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

3
推荐指数
2
解决办法
944
查看次数

使用 Python 的 unittest subTest 时避免在测试中重复?

我在为这种情况想出一个优雅的解决方案时遇到了麻烦。

假设我在 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)

python unit-testing python-3.x python-unittest

2
推荐指数
1
解决办法
1875
查看次数