首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python将字符串输入到整数值

Python将字符串输入到整数值
EN

Stack Overflow用户
提问于 2022-05-05 15:02:43
回答 2查看 51关注 0票数 -1

我正在编写一个化学计算器,它使用元素名并将其转换为电荷的值。所以氢等于1,但是我想要实际的元素,像氢,但是它是一个字符串值,所以我想把这个字符串值转换成一个整数值,例如在这个输入(第一个元素=氢)氢=1中已经设置的整数值,并且我需要打印氢,它打印1,但是它总是以字符串的形式出现。

EN

回答 2

Stack Overflow用户

发布于 2022-05-05 15:08:02

最简单的方法是使用字典将元素名映射到原子序数,反之亦然:

代码语言:javascript
复制
elements = {
    "hydrogen": 1,
    "helium": 2,
}

atomic_nums = {num: elem for elem, num in elements.items()}

elems = input("input elements: ").lower().split()
print(*elems, sep=" + ", end=" = ")
print(atomic_nums[sum(elements[e] for e in elems)])
代码语言:javascript
复制
input elements: hydrogen hydrogen
hydrogen + hydrogen = helium

更多的OOP方法是创建一个类并实现一个__add__操作。Enum作为这方面的基础非常好:

代码语言:javascript
复制
from enum import Enum

class Element(Enum):
    NoElement = 0
    Hydrogen = 1
    Helium = 2

    def __add__(self, other):
        return type(self)(self.value + other.value)


elems = [Element.__members__[e] for e in input("input elements: ").title().split()]
print(*(e.name for e in elems), sep=" + ", end=" = ")
print(sum(elems, Element.NoElement).name)

OOP方法使向加法逻辑添加复杂性变得更加容易,例如,如果您希望类支持特定的组合,并对那些从物理角度来说没有意义的组合产生异常,或者在某些情况下返回Compound (您定义的另一个类)而不是Element,则会更容易。

票数 0
EN

Stack Overflow用户

发布于 2022-05-05 15:08:14

使用int()命令将字符串转换为int很容易

代码语言:javascript
复制
a_str_that_i_want_to_be_a_int = '44'
#first way
a_str_that_i_want_to_be_a_int = int(a_str_that_i_want_to_be_a_int)
#2nd way (will not penitently change type) 
int(a_str_that_i_want_to_be_a_int) + a_int
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72129411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档