如何从用户输入字符串提取整数并加1?Python代码待完善
搞定从输入提取整数并加1的功能
嘿,我明白你现在的需求——要从用户输入的字符串里识别出整数(不管是阿拉伯数字,还是你定义的那些像"zero"、"one"这类同义词),然后把这些数字加1,对吧?结合你给出的代码片段,我来帮你完善这个功能。
第一步:把同义词列表整合成更易用的映射
你现在分了好几个独立列表,不如把它们合并成一个字典,这样能快速把英文同义词对应到阿拉伯数字;同时再做个反向映射,方便加1后转成标准英文(我选每个数字列表里的第一个词当标准输出,你可以根据需求自己调整):
# 英文同义词 -> 阿拉伯数字的映射(大小写不敏感,后面处理会转小写匹配) num_synonyms = { "zero": 0, "none": 0, "null": 0, "nil": 0, "juan": 1, "one": 1, "won": 1, "two": 2, "to": 2, "too": 2, "tu": 2, "three": 3, "four": 4, "fore": 4, "for": 4 } # 阿拉伯数字 -> 标准英文的反向映射 num_to_word = { 0: "zero", 1: "one", 2: "two", 3: "three", 4: "four", # 要是需要支持更多数字,直接在这里添加就行,比如 5: "five" }
第二步:处理输入的核心逻辑
接下来遍历输入的每个单词,判断它是不是数字(阿拉伯数字或英文同义词),然后执行加1处理:
user_input = input("Enter your sentence to inflate: ") processed_words = [] for word in user_input.split(): # 先处理阿拉伯数字的情况 if word.isdigit(): original_num = int(word) new_num = original_num + 1 # 给你两个输出选项,选一个用就行: # 选项1:输出加1后的阿拉伯数字 processed_words.append(str(new_num)) # 选项2:输出对应的英文(如果有映射,没有就 fallback 到阿拉伯数字) # processed_words.append(num_to_word.get(new_num, str(new_num))) # 再处理英文同义词的情况,转小写是为了兼容大小写不敏感的输入 elif word.lower() in num_synonyms: original_num = num_synonyms[word.lower()] new_num = original_num + 1 # 同样选输出方式: processed_words.append(num_to_word.get(new_num, str(new_num))) # 选项2:输出阿拉伯数字 # processed_words.append(str(new_num)) # 不是数字的单词直接保留原内容 else: processed_words.append(word) # 把处理后的单词重新拼成句子输出 final_sentence = ' '.join(processed_words) print("Inflated sentence:", final_sentence)
测试示例效果
比如用户输入:I had for cookies, two sodas, and 3 chips
- 用选项1(输出英文)的话,结果会是:
I had four cookies, three sodas, and 4 chips - 用选项2(输出阿拉伯数字)的话,结果是:
I had 4 cookies, 3 sodas, and 4 chips
可以优化的小细节
- 如果输入的单词带标点(比如"four,"),可以先清理标点再判断,比如用
clean_word = word.strip('.,!?')处理后再匹配 - 要是需要支持更多数字,只需要在两个字典里添加对应的条目即可,扩展性很强
内容的提问来源于stack exchange,提问作者Twissted
相关产品推荐
相关产品推荐

