从网上抓取数字,转换为int(),但不能相乘
Grabbed numbers from an online page, converted to int(), but cannot multiply
我写了一个Python脚本上线,抓取页面,解析页面,定位一串数字(如5678),存入num。现在,我需要对这个数字执行一些数学函数。为什么我不能那样做?
从页面抓取一行:数字是“6678”。因此,行 = "The number is '6678'"
c = ""
num = ''.join(c for c in line if c.isdigit())
int(num)
print num
try=(num*2)
print try
错误:
File "script", line 20
try=(num*2)
^
SyntaxError: invalid syntax
编辑: 将 'try' 更改为 't'。愚蠢的错误!但是,现在我在尝试使用 'num' 进行数学运算时遇到了一个新错误,进一步的代码:
new = (((num*3)+3)-1000)
print new
错误:
Traceback (most recent call last):
File "602", line 22, in
new = (((num*3)+2)-250)
TypeError: coercing to Unicode: need string or buffer, int found
您需要实际重新分配投射号码:
num = int(num) # num is a string right now
发生此错误是因为您尝试使用名为 "try" 的变量,这是 python 的关键字。
此外,您没有保存数字的整数值。
最后,您的代码应如下所示:
line = "4567"
num = ''.join(c for c in line if c.isdigit())
int_num = int(num)
print int_num
try1=(int_num*2)
print try1
这是一个模拟示例。如果您使用漂亮的汤 return 页面的 html 内容,则需要拆分阅读内容。你想创建一个单词列表而不是字符列表,这样你就不会 运行 进入@Jon Clements 提出的整个 1 vs 12 问题。
my_list = []
for word in data.split(" "):
if word.isdigit():
my_list.append(word)
my_list = [int(i) for i in my_list]
print sum(my_list) * 2
另外,try 是这样工作的:
try:
pass #try to do some action
except:
pass #if that action fails report
我写了一个Python脚本上线,抓取页面,解析页面,定位一串数字(如5678),存入num。现在,我需要对这个数字执行一些数学函数。为什么我不能那样做?
从页面抓取一行:数字是“6678”。因此,行 = "The number is '6678'"
c = ""
num = ''.join(c for c in line if c.isdigit())
int(num)
print num
try=(num*2)
print try
错误:
File "script", line 20
try=(num*2)
^
SyntaxError: invalid syntax
编辑: 将 'try' 更改为 't'。愚蠢的错误!但是,现在我在尝试使用 'num' 进行数学运算时遇到了一个新错误,进一步的代码:
new = (((num*3)+3)-1000)
print new
错误:
Traceback (most recent call last): File "602", line 22, in new = (((num*3)+2)-250) TypeError: coercing to Unicode: need string or buffer, int found
您需要实际重新分配投射号码:
num = int(num) # num is a string right now
发生此错误是因为您尝试使用名为 "try" 的变量,这是 python 的关键字。 此外,您没有保存数字的整数值。 最后,您的代码应如下所示:
line = "4567"
num = ''.join(c for c in line if c.isdigit())
int_num = int(num)
print int_num
try1=(int_num*2)
print try1
这是一个模拟示例。如果您使用漂亮的汤 return 页面的 html 内容,则需要拆分阅读内容。你想创建一个单词列表而不是字符列表,这样你就不会 运行 进入@Jon Clements 提出的整个 1 vs 12 问题。
my_list = []
for word in data.split(" "):
if word.isdigit():
my_list.append(word)
my_list = [int(i) for i in my_list]
print sum(my_list) * 2
另外,try 是这样工作的:
try:
pass #try to do some action
except:
pass #if that action fails report