小编Tom*_*koo的帖子

object.__init__() 仅接受一个参数(要初始化的实例)

我是初学者,我在这门课和以下课程中面临问题__init__

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_readings = 0

    def getname(self):
        longname = f'{self.year} {self.model} {self.year}'
        return longname.title()

    def read_odometer(self):
        print(f'This car has {self.odometer_readings} miles on it')

    def update_odometer(self, mileage):
        if mileage >= self.odometer_readings:
            self.odometer_readings = mileage
        else:
            print('You cant roll back  the odometer')

    def increment_odometer(self, mileage):
        self.odometer_readings += miles

class Battery:
    def __init__(self, battery_size = 75):
        self.battery_size = battery_size

    def describe_battery(self):
        print(f'This car has a {self.battery_size}-kWh …
Run Code Online (Sandbox Code Playgroud)

python

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

如何将字符串输入作为整数参数传递?

我想通过传递值的参数做以下简单的计算num1,并num2input()方法。

我尝试了以下代码:

def add(num1, num2):
    return num1 * num2

num1 = input('Enter number1: ')
num2 = input('Enter number2: ')

print(add(num1, num2))
Run Code Online (Sandbox Code Playgroud)

但是它在运行时显示以下错误(在输入num1和之后num2):

TypeError: can't multiply sequence by non-int of type 'str'
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下我哪里出错了以及如何将输入字符串转换为整数类型吗?

python string integer arguments

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

正则表达式:在数字后跟字母时添加空格

在一组数字之后,我想在字符串中添加一个空格。例如,以下字符串应在数字后添加一个空格:

Before                           After
"0ABCD TECHNOLOGIES SERVICES"    "0 ABCD TECHNOLOGIES SERVICES"
"ABCD0 TECHNOLOGIES SERVICES"    "ABCD 0 TECHNOLOGIES SERVICES"

"ABCD 0TECHNOLOGIES SERVICES"    "ABCD 0 TECHNOLOGIES SERVICES"
"ABCD TECHNOLOGIES0 SERVICES"    "ABCD TECHNOLOGIES 0 SERVICES"

"ABCD TECHNOLOGIES 0SERVICES"    "ABCD TECHNOLOGIES 0 SERVICES"
"ABCD TECHNOLOGIES SERVICES0"    "ABCD TECHNOLOGIES SERVICES 0"
Run Code Online (Sandbox Code Playgroud)

我一直在尝试按以下方式在 Python 中处理正则表达式:

text= re.sub(r'([0-9]+)?([A-Za-z]+)?([0-9]+)?',
             r'\1 \2 \3',
             text,
             0,
             re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

使用前面的代码,我得到了影响其他正则表达式转换的不需要的空格:

"0 abcd     technologies     services   "
Run Code Online (Sandbox Code Playgroud)

如何在不添加不需要的空格的情况下在字符串中添加空格?

python regex regexp-replace

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

i += x > 0 是什么意思?

我正在审查一段代码,我想知道这个表达式是什么意思:

target += counter[s[left]] >= 0
Run Code Online (Sandbox Code Playgroud)

python

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

CPU线程和通过编程创建的线程有什么区别?

在我的 CPU 中,我知道我有 8 个核心和 16 个线程(每个核心有 2 个线程)。

但是当我通过编程(例如在 C++ 中)创建线程时,我可以创建超过 100,000 个线程。

那么这两种线程有什么区别呢?

cpu multithreading

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

将科学记数法中的浮点数转换为“d.dd x 10^(-n)”

我正在构建一个计算器来计算一些与化学相关的计算。所以大多数结果将是非常小的值。

一个示例结果是4.840909814726882e-09

如何以类似的格式显示此值4.84 x 10^(-9)

python

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

根据键列表从字典中获取值

我有一个清单。

mapper = {"a": 9, "b": 7}
A = ["a", "b"]
Run Code Online (Sandbox Code Playgroud)

我想得到:

result = [9, 7]
Run Code Online (Sandbox Code Playgroud)

我知道有多种方法可以实现这一目标,例如:

result = [mapper[char] for char in A]
result = list(map(lambda x: mapper[x], A))
Run Code Online (Sandbox Code Playgroud)

对于第二种方式,我们可以使用operator模块而不是使用 lambda 吗?

我找到了一个名为 的方法operator.getitem(),我尝试使用

result = list(map(operator.getitem(mapper), A))
Run Code Online (Sandbox Code Playgroud)

但这会引发异常。

我知道list(map(lambda x: operator.getitem(mapper, x), A))会起作用,但我只想避免使用lambda.

我找到了这个问题,但我没有找到解决方案。

python python-3.x

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

在多字串的空格之间添加一个字符

我正在尝试制作一个函数,它接受不确定数量的参数,即单词,它将在单个单词之间添加一个“+”。最后它应该仍然是一个字符串。

def add_words(word1 word2 word3 ...)
Run Code Online (Sandbox Code Playgroud)

输出:

"word1+word2+word3 ...")
Run Code Online (Sandbox Code Playgroud)

python

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

python中奇怪的十进制输出

我正在使用 python3.9 并尝试计算以下内容:

17.36-14.76。这是一个非常简单的计算,输出应该是 2.6,没有任何其他额外的数字。

但是,在 python3.9 中,我得到以下输出:

>>> 17.36-14.76
2.5999999999999996
Run Code Online (Sandbox Code Playgroud)

我知道,我可以将结果四舍五入以获得所需的输出。但是,我不明白为什么它以一种奇怪的方式计算它,因为 17.36-14.76 不是 2.5999999999999996,17.36-14.76 是 2.6。

python有一些奇怪的设置吗?

python floating-point

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

有没有更好的方法来合并两个集合字典?

我正在使用此代码将一个字典合并到另一个字典中 - 如果存在键,它应该合并两个字典中的值:

source_dict = defaultdict(set)
target_dict = defaultdict(set)

def merge_dict(source_dict, target_dict):
    for source_key in source_dict:
        if source_key in target_dict:
            target_dict[source_key].update(source_dict[source_key])
        else:
            target_dict[source_key] = source_dict[source_key]
Run Code Online (Sandbox Code Playgroud)

有没有办法优化merge_dict上面的功能?例如,使其更简洁或更高效?

python dictionary defaultdict

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