如何获取复数"92+23i"的实部与虚部并存入指定变量?
从复数字符串提取实部和虚部的方法
嘿,这问题挺常见的,我来给你两种实用的Python实现方案,轻松把92+23i里的数值提取出来并存入指定变量:
方法一:字符串分割(适合格式固定的情况)
如果你的复数字符串严格是实部+虚部i的格式,直接用字符串操作就搞定:
# 定义目标字符串 complex_str = "92+23i" # 移除末尾的虚部标识 'i' trimmed_str = complex_str[:-1] # 用 '+' 分割实部和虚部的字符串片段 real_str, imag_str = trimmed_str.split('+') # 转换为整数并赋值给变量 num_real = int(real_str) num_imagin = int(imag_str) # 验证结果 print(num_real) # 输出:92 print(num_imagin) # 输出:23
注意:如果虚部是负数(比如92-23i),需要把split('+')改成split('-'),同时注意给虚部补回负号哦。
方法二:正则表达式(更健壮,适配多种格式)
如果你的复数字符串可能有正负号变化(比如-92+23i、92-23i),用正则表达式能更灵活地匹配:
import re complex_str = "92+23i" # 正则表达式匹配:实部(可选正负号+数字)、虚部(必选正负号+数字)+i pattern = re.compile(r'([+-]?\d+)([+-]\d+)i') match_result = pattern.match(complex_str) if match_result: # 提取分组并转换为整数 num_real = int(match_result.group(1)) num_imagin = int(match_result.group(2)) print(num_real) # 输出:92 print(num_imagin) # 输出:23
这个方法能自动识别实部和虚部的正负号,哪怕是更复杂的复数格式也能应对。如果需要处理浮点数(比如92.5+23.3i),只需要把int()换成float()就行。
内容的提问来源于stack exchange,提问作者WildFire
相关产品推荐
相关产品推荐

