从键盘输入一行任意字符串,调用hexvalue()函数,将其中符合十六进制的数转换为十进
时间: 2024-01-06 15:02:24 浏览: 190
十六进制字符串到浮点数,整型的相互转换源代码(qt+vc2010)
首先,我们需要编写一个名为hexvalue()的函数来实现将符合十六进制的数转换为十进制的功能,并且接受一个字符串作为输入。
函数的实现如下:
```python
def hexvalue(string):
hex_nums = []
result = ""
idx = 0
while idx < len(string):
if string[idx] == '0' and idx < len(string)-1 and string[idx+1].lower() == 'x':
idx += 2
num = ""
while idx < len(string) and (string[idx].isdigit() or string[idx].lower() in 'abcdef'):
num += string[idx]
idx += 1
if num != "":
hex_nums.append(int(num, 16))
else:
idx += 1
if len(hex_nums) > 0:
result += "转换结果:"
for num in hex_nums:
result += str(num) + " "
result = result[:-1]
else:
result += "没有找到符合十六进制的数"
return result
```
在这个函数中,我们首先创建了一个空列表`hex_nums`来存储符合十六进制的数的十进制值。
之后,我们使用一个while循环来遍历字符串中的每个字符。当遇到以'0x'开头的连续字符时,我们进入内层while循环,将连续的字符拼接成一个字符串`num`,然后将该字符串转换成十进制数,通过int()函数的第二个参数指定输入字符串为十六进制。
最后,我们将转换后的十进制数添加到`hex_nums`列表中。
如果`hex_nums`列表中存在元素,则将结果字符串设置为"转换结果:"加上`hex_nums`列表中的元素,如果`hex_nums`列表为空,则将结果字符串设置为"没有找到符合十六进制的数"。
最后,我们返回结果字符串。
最后,我们可以通过以下代码来使用这个函数并测试它:
```python
string = input("请输入字符串:")
result = hexvalue(string)
print(result)
```
现在,我们可以运行程序并输入任意字符串来进行测试。程序会输出符合十六进制的数的十进制转换结果。
阅读全文