如何在不修改常数值和数据类型的情况下将结果存储在变量中



我是Python的新手,需要解决以下两项任务。

第1部分:

+A, B, C = -5, '8', 7.6  # DO NOT MODIFY CONSTANT VALUES
+TOTAL = int()           # DO NOT MODIFY DATA TYPE
+
+''' PSEUDO CODE
+SUM given values of A, B and C as integers, CASTING where necessary.
+STORE result in variable 'TOTAL'.
+
+Expected output:
+    -5 + 8 + 7.6 = 10
+'''
+
+# TODO: implement your solution for pseudo code!
+
+print("{} + {} + {} = {}".format(A, B, C, TOTAL))  # DO NOT MODIFY

这是我的解决方案,但我不太确定这是否是正确的方式,即使预期的输出是正确的:

import math
A, B, C = -5, '8', 7.6  # DO NOT MODIFY CONSTANT VALUES
B = int(B)
SUM = A + B + C
math.floor(SUM)
TOTAL = int(SUM)           # DO NOT MODIFY DATA TYPE
print("{} + {} + {} = {}".format(A, B, C, TOTAL))  # DO NOT MODIFY

第2部分:

+TEXT = "I wrote my very first program at age 10!"   # DO NOT MODIFY CONSTANT VALUES
+OUTPUT = str()                                      # DO NOT MODIFY DATA TYPE
+
+''' PSEUDO CODE
+DETERMINE whether 'TEXT' contains the value of 'TOTAL' as substring.
+IF True STORE "true that" in variable 'OUTPUT' ELSE STORE "nope".
+
+Expected output:
+    Value of 'TOTAL' exists in string: true that
+'''
+
+# TODO: implement your solution for pseudo code!
+
+print("Value of 'TOTAL' exists in string: {}".format(OUTPUT))  # DO NOT MODIFY

我的(可能不正确的(解决方案:

TEXT = "I wrote my very first program at age 10!"   # DO NOT MODIFY CONSTANT VALUES
OUTPUT = str(TEXT[37:39])                           # DO NOT MODIFY DATA TYPE
TEXT = int(OUTPUT)
# result = TEXT.find("10")
# print(result)
if TEXT == TOTAL:
OUTPUT = "true that"
else:
OUTPUT = "nope"
print("Value of 'TOTAL' exists in string: {}".format(OUTPUT))  # DO NOT MODIFY

正如你所看到的,如果不修改数据类型,我似乎找不到任何其他解决方案。这项作业都是关于简单算术的,只使用基本运算符。实现不需要也不允许使用外部库。

代码分配的第二部分的实现需要符合所呈现的伪代码,其中应该比较字符串(而不是数值(。此外,TEXT需要被视为一个常量(不更改值或其数据类型(。

严格回答,因为我相信海报和网站上的其他新贡献者可能有价值。如果我的答案不合适,我很乐意删除。

对于第一个问题,有很多不同的方法可以在不修改常数值的情况下完成相同的任务。以下是我想到的几个:

A, B, C = -5, '8', 7.6
TOTAL = int()
for number in [A, B, C]:
if type(number) == int:
TOTAL += number
else:
TOTAL += int(number)    
print("{} + {} + {} = {}".format(A, B, C, TOTAL))

A, B, C = -5, '8', 7.6
TOTAL = int()
TOTAL = int(A) + int(B) + int(C)    
print("{} + {} + {} = {}".format(A, B, C, TOTAL))

甚至

TOTAL = A + int(B) + int(C)    
print("{} + {} + {} = {}".format(A, B, C, TOTAL))

所有这些的问题是,它们没有考虑到ABC无法(暂时(转换为int类型的异常情况。例如,如果改为B = 'eight',则此代码将引发异常。假设这是一个较低级别的问题,有硬编码的值,所以我们(目前(不需要担心这些。因此,要回答这个特定的问题,第三种选择可能是最好的,因为它回答了这个问题,并且只在必要时使用选角。

顺便说一句:由于可读性,我非常喜欢更新的字符串格式,但它并不适用于所有版本的Python。对于Python 3.6及更高版本,您可以(也许应该(使用print(f"{A} + {B} + {C} = {TOTAL}")

转到第2部分:这是第一个问题的延续,因此我们假设变量TOTAL已经存储了一个值(10(。所以我们可以很容易地使用in来解决这个问题。

TEXT = "I wrote my first program at age 10!"
OUTPUT = str()
if str(TOTAL) in TEXT:
OUTPUT = "true that"
else:
OUTPUT = "nope"
print("Value of 'TOTAL' exists in string: {}".format(OUTPUT))

如果你对这里有任何问题,请告诉我,欢迎加入社区!

相关内容

最新更新