我是初学者,我在这门课和以下课程中面临问题__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) 我想通过传递值的参数做以下简单的计算num1
,并num2
从input()
方法。
我尝试了以下代码:
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)
有人可以解释一下我哪里出错了以及如何将输入字符串转换为整数类型吗?
在一组数字之后,我想在字符串中添加一个空格。例如,以下字符串应在数字后添加一个空格:
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)
如何在不添加不需要的空格的情况下在字符串中添加空格?
在我的 CPU 中,我知道我有 8 个核心和 16 个线程(每个核心有 2 个线程)。
但是当我通过编程(例如在 C++ 中)创建线程时,我可以创建超过 100,000 个线程。
那么这两种线程有什么区别呢?
我正在构建一个计算器来计算一些与化学相关的计算。所以大多数结果将是非常小的值。
一个示例结果是4.840909814726882e-09
。
如何以类似的格式显示此值4.84 x 10^(-9)
?
我有一个清单。
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
.
我找到了这个问题,但我没有找到解决方案。
我正在尝试制作一个函数,它接受不确定数量的参数,即单词,它将在单个单词之间添加一个“+”。最后它应该仍然是一个字符串。
def add_words(word1 word2 word3 ...)
Run Code Online (Sandbox Code Playgroud)
输出:
"word1+word2+word3 ...")
Run Code Online (Sandbox Code Playgroud) 我正在使用 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有一些奇怪的设置吗?
我正在使用此代码将一个字典合并到另一个字典中 - 如果存在键,它应该合并两个字典中的值:
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 ×9
arguments ×1
cpu ×1
defaultdict ×1
dictionary ×1
integer ×1
python-3.x ×1
regex ×1
string ×1