import requests
from bs4 import BeautifulSoup
import time
import sys
url = "https://www.doviz.com/"
response = requests.get(url)
html_icerigi = response.content
soup = BeautifulSoup(html_icerigi,"html.parser")
isimler = soup.find_all("span",{"class":"menu-row1"})
degerler = soup.find_all("span",{"class":"menu-row2"})
islem = input("Lütfen işleminizi giriniz...")
time.sleep(1)
for isim,deger in zip(isimler,degerler):
isim = isim.text
deger = deger.text
isim = isim.strip()
deger = deger.strip()
isim = isim.replace("\n","")
deger = deger.replace("\n","")
print(isim,deger)
while True:
if islem == "q" or islem == "Q":
print("Programdan çıkılıyor...")
time.sleep(1)
elif islem == "1":
print("1 Gr Altın = {} TLdir.".format(deger[0]))
我的问题是:
1 GrAltın= 2 TLdir。 1 GrAltın= 2 TLdir。
连续。我该如何避免呢?
deger[0]
仅返回黄金克实际值的第一位。我要的全部是216,370美元。顺便说一下,我是Python的绝对初学者。
最好的问候。
答案 0 :(得分:0)
我认为不需要while True:
循环。删除将摆脱问题#1
类似地,看起来您正在索引deger
字符串。字符串的0索引是它的第一个字母。删除索引将返回整个值。
编辑: 从您的评论看来,您正在尝试创建一个列表,您可以对其进行索引以提取该索引的特定值。为此,您需要列出这些值。
look_up = []
for isim,deger in zip(isimler,degerler):
isim = isim.text
deger = deger.text
isim = isim.strip()
deger = deger.strip()
isim = isim.replace("\n","")
deger = deger.replace("\n","")
look_up.append(isim + "\t" + deger)
print(isim,deger)
# dedent to remove from `for` loop
if islem == "q" or islem == "Q":
print("Programdan çıkılıyor...")
time.sleep(1)
else:
print("1 Gr Altın = {} TLdir.".format(look_up[int(islem)]))
注意:这将仅允许一次查找。如果要允许它进行多个查找,则需要建立一个哨兵循环,该循环将一直持续到按下"q"
为止。
此外,使用字典look_up = {}
并通过look_up[isim] = deger
填充字典可能会更好。这样,您就可以通过isim
值查找信息。即DOLAR
或EURO
我希望这是足够的信息,可以帮助您找到想要去的地方。我相信您可以使用此处提供的信息来解决您的特定用例。