今天使用python的format進行輸出,結果遇到了無法成功輸出的問題,感到十分奇怪,見下所示:
# -*- coding: utf-8 -*
from urllib import request
import requests
import json
from bs4 import beautifulsoup
import re
url1 =
''#獲取全國幾千個縣以上單位的城市**
url2 =
''#一次性獲取全國+國外主要城市,8763個城市列表資訊。
try:
r=requests.get(url1)
#連線url並開啟
sta=r.status_code #返回狀態
if sta ==
200:
print
("連線中國天氣網成功"
)except
:print
("連線中國天氣網請求失敗"
)else
: r.encoding=
'utf-8'
text1 =
(r.text)
#print(type(text1))
#print(text1)
weather_info = text1.split(
'\r\n'
)#print(weather_info)
#html = request.urlopen(url1).read().decode('utf-8')
#print("輸出urlopen函式得到的內容:")
#print(html)
#print(type(html))
#if html == text1:
#print("the same function")
still =
1while still>0:
print
("請輸入城市名字:"
) cityname =
input()
for index in
range
(len
(weather_info)):
qu = re.search(r'.*city quname=(.*) .*'
,weather_info[index]
, re.m|re.i)
if qu:
city = re.search(r'.*cityname="(.*?)".*'
,weather_info[index]
, re.m|re.i)
if city:
#print(city.group(1))
if city.group(1)
== cityname:
wea_info1 = re.search(r'.*city quname="(.*?)" .*'
,weather_info[index]
, re.m|re.i)
wea_info2 = re.search(r'.*cityname="(.*?)" .*'
,weather_info[index]
, re.m|re.i)
wea_info3 = re.search(r'.*statedetailed="(.*?)" .*'
,weather_info[index]
, re.m|re.i)
wea_info4 = re.search(r'.*tem1="(.*?)" .*'
,weather_info[index]
, re.m|re.i)
wea_info5 = re.search(r'.*tem2="(.*?)" .*'
,weather_info[index]
, re.m|re.i)
wea_info6 = re.search(r'.*windstate="(.*?)".*'
, weather_info[index]
, re.m | re.i)
print
(type
(wea_info4.group(1)
))print
(wea_info5.group(1)
)print
(" 城市:"
+wea_info1.group(1)
+wea_info2.group(1)
+'\n'
+"天氣狀況:"
+wea_info3.group(1)
+'\n'
+'氣溫:-\n'
+"風力狀況:"
+wea_info6.group(1)
+'\n'
.format
(wea_info5.group(1)
,wea_info4.group(1)
))print
("氣溫:-\n"
.format
(wea_info5.group(1)
,wea_info4.group(1)
))break
else
:#print("not found")
print
("sorry,city not found"
)print
("是否希望繼續查詢?"
)print
("是,輸入1\n否,輸入0"
) still =
int(
input()
)
**用來實現對中國天氣網的天氣狀況的抓取,並利用正規表示式對抓取下來的字串資訊進行操作,獲得所需的資訊,但是輸出結果卻是:
可以看到氣溫一欄並沒有成功輸出,但是後面再次重新打print卻又成功輸出,查閱網上資料發現str.format()前面只能是字串,而不可以是字串和變數組合起來的東西,哪怕變數是字串也不行,換句話說,也就是format前面的必須是在引號裡面,方才可以成功輸出,否則就會出現把{}輸出的結果。
總結而言,也就是說,如果要使用.format輸出,就得把變數全部放到format中,前面是乙個引號中的字串。要麼就乾脆用字串的連線符合%d,%s等方式輸出。
注:後又經過嘗試發現實際上實際上%s,%d等輸出與.format是相同的,都是前面是乙個str,且在乙個引號裡面,要麼全部都用字串連線符等輸出。
python3中的format函式
原文出處 format函式常與print 函式結合使用,具備很強的格式化輸出能力。通過變數,逗號隔開 print 今天 format 我 攔路雨 action 在寫部落格 通過關鍵字使用字典傳入,在字典前加入 grade print 比較無聊,在 format grade 字典前加上 通過位置 pr...
python中format輸出常用的3種格式
1 name input 請輸入暱稱 2 age input 請輸入年齡 3 money input 請輸入年薪 4 hobby input 請輸入興趣 56 變數賦值 7print 8姓名 9年齡 歲 10年薪 萬 11興趣 12 13 format ag age,mon money,hob ho...
python3中異常處理 Python3異常處理
python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...