在講訴條件語(yǔ)句之前,需要先補(bǔ)充語(yǔ)句塊的知識(shí)。語(yǔ)句塊并非一種語(yǔ)句,它是在條件為真時(shí)執(zhí)行一次或執(zhí)行多次的一組語(yǔ)句,在代碼前放置空格縮進(jìn)即可創(chuàng)建語(yǔ)句塊。它類似于C、C++、Java等語(yǔ)言的大括號(hào)({ })來表示一個(gè)語(yǔ)句塊的開始和結(jié)束。
在Python中使用冒號(hào)(:)來標(biāo)識(shí)語(yǔ)句塊的開始,塊中每一條語(yǔ)句都有縮進(jìn)并且縮進(jìn)量相同,當(dāng)回退到上一層縮進(jìn)量時(shí),就表示當(dāng)前語(yǔ)句塊已經(jīng)結(jié)束。 下面開始詳細(xì)講解條件語(yǔ)句。
單分支語(yǔ)法如下:
if <condition>:
<statement>
<statement>
< condition > 是條件表達(dá)式,基本格式為< expr >< relop >< expr >;< statement >是語(yǔ)句主體。判斷條件如果為真(True)就執(zhí)行語(yǔ)句,如果為假(False)就跳過語(yǔ)句,執(zhí)行下一條語(yǔ)句。條件判斷通常有布爾表達(dá)式(True、False)、關(guān)系表達(dá)式(>、<、>=、<=、==、!=)和邏輯運(yùn)算表達(dá)式(and、or、not,其優(yōu)先級(jí)從高到低是not、and、or)等。
注意:在Python2.x版本中,條件表達(dá)式是不強(qiáng)制要求用括號(hào)括起來的,但條件表達(dá)式后面一定要添加英文冒號(hào)字符。
a=10
if a==10:
print('變量a等于10')
print(a)
輸出結(jié)果如下:
二分支語(yǔ)法如下:
if <condition>:
<statement>
<statement>
else:
<statement>
<statement>
執(zhí)行過程如下圖所示:
如果條件語(yǔ)句< condition >為真,if后面的語(yǔ)句就被執(zhí)行,如果為假,則執(zhí)行else下面的語(yǔ)句塊。條件語(yǔ)句的格式為:< expr >< relop >< expr >,其中< expr >為表達(dá)式、為關(guān)系操作符。例如:a >=10、b !=5等。
a=10
if a >=5:
print('變量a大于等于5')
print(a)
else:
print('變量a小于5')
print(a)
輸出結(jié)果如下,由于變量a為10,大于5執(zhí)行if中的語(yǔ)句。
if多分支由if-elif-else組成,其中elif相當(dāng)于else if,同時(shí)它可以使用多個(gè)if的嵌套。具體語(yǔ)法如下所示:
if <condition1>:
<case1 statements>
elif<condition2>:
<case2 statements>
elif<condition3>:
<case3 statements>
...
else:
<default statements>
該語(yǔ)句是順序評(píng)估每個(gè)條件,如果當(dāng)前條件分支為True,則執(zhí)行對(duì)應(yīng)分支下的語(yǔ)句塊,如果沒有任何條件成立,則執(zhí)行else中的語(yǔ)句塊,其中else是可以省略的。代碼如下:
num=input("please input:")
num=int(num)
print(num)
if num >=90:
print('A Class')
elif num >=80:
print('B Class')
elif num >=70:
print('C Class')
elif num >=60:
print('D Class')
else:
print('No Pass')
輸出值為76,則在80到70之間,成績(jī)?yōu)镃等級(jí),輸出結(jié)果如下圖所示。
注意:由于Python不支持switch語(yǔ)句,所以多個(gè)條件判斷,只能用elif來實(shí)現(xiàn),如果判斷需要多個(gè)條件需同時(shí)判斷時(shí),可以:
# 判斷值是否在小于0或大于10
num=10
if num < 0 or num > 10:
print('hello')
else:
print('undefine')
# 輸出結(jié)果: undefine
# 判斷值是否在0~5或者10~15之間
num=8
if (num >=0 and num <=5) or (num >=10 and num <=15):
print('hello')
else:
print('undefine')
輸出結(jié)果如下圖所示:
當(dāng)if有多個(gè)條件時(shí)可使用括號(hào)來區(qū)分判斷的先后順序,括號(hào)中的判斷優(yōu)先執(zhí)行,此外and和or的優(yōu)先級(jí)低于>(大于)、<(小于)等判斷符號(hào),即大于和小于在沒有括號(hào)的情況下會(huì)比與或要優(yōu)先判斷。
同時(shí),你也可以在同一行的位置上使用if條件判斷語(yǔ)句,如下實(shí)例。但不見大家使用類似的語(yǔ)法,在我們編寫項(xiàng)目或?qū)崙?zhàn)中,很可能你的代碼會(huì)供別人學(xué)習(xí),有時(shí)你只負(fù)責(zé)其中一部分,良好的代碼格式及注釋是非常必要的。
var=520
if (var==520): print("感謝您關(guān)注娜璋AI安全之家")
Python循環(huán)語(yǔ)句主要分為while循環(huán)和for循環(huán),它允許我們執(zhí)行一個(gè)語(yǔ)句或語(yǔ)句組多次。
while循環(huán)語(yǔ)句的基本格式如下:
while <condition>:
<statement>
else:
<statement>
執(zhí)行流程如下圖所示:
條件表達(dá)式< condition >如果為真時(shí),則循環(huán)體重復(fù)執(zhí)行,直到條件判斷為假,循環(huán)體終止,如果第一次判斷條件就為假,則直接跳出循環(huán)執(zhí)行else語(yǔ)句,注意else語(yǔ)句可以省略,同時(shí)冒號(hào)(:)開始進(jìn)入循環(huán)體,縮進(jìn)區(qū)分語(yǔ)句塊。條件語(yǔ)句condition包括布爾表達(dá)式(True、False)、關(guān)系表達(dá)式(>、<、>=、<=、==、!=)和邏輯運(yùn)算表達(dá)式(and、or、not)等。
案例1:1+2+…+100
i=1
s=0
while i <=100:
s=s+i
i=i+1
else:
print('over')
print('sum=', s)
這段代碼是作者寫博客或授課時(shí),講述循環(huán)語(yǔ)句最常用的例子,求1+2+3+…+100的結(jié)果,答案是5050。該段代碼反復(fù)執(zhí)行“i<=100”判斷,當(dāng)i加到101時(shí),判斷i>100為假則結(jié)束循環(huán)執(zhí)行else語(yǔ)句。
案例2:循環(huán)打開網(wǎng)站
再舉一個(gè)實(shí)例,通過定義一個(gè)while循環(huán),調(diào)用webbrowser庫(kù)的open_new_tab()函數(shù)循環(huán)打開百度首頁(yè)網(wǎng)址,下面代碼反復(fù)打開了百度首頁(yè)5次。完整代碼如下:
import webbrowser as web
import time
import os
i=0
while i<5:
web.open_new_tab('http://www.baidu.com')
i=i+1
time.sleep(0.8)
else:
os.system('taskkill /F /IM iexplore.exe')
print('close IE')
代碼是調(diào)用webbrowser庫(kù)中open_new_tab()函數(shù)打開窗口(百度鏈接)5次。
最后循環(huán)結(jié)束執(zhí)行os.system()操作系統(tǒng)函數(shù),調(diào)用taskkill命令結(jié)束IE瀏覽器進(jìn)程(Iexplore.exe),其他瀏覽器程序修改為chrome.exe、qq.exe或firefox.exe即可。其中參數(shù)“/F”表示強(qiáng)行終止程序,“/IM”表示圖像,如下圖所示。
注意:上述代碼實(shí)現(xiàn)了循環(huán)打開某個(gè)網(wǎng)站,可以應(yīng)用于刷取網(wǎng)頁(yè)瀏覽量或Web開發(fā)測(cè)試等功能。比如新浪博客等部分網(wǎng)頁(yè)打開一次瀏覽器會(huì)計(jì)算一次瀏覽次數(shù),通過上面這段代碼可以循環(huán)增加閱讀量,部分網(wǎng)站又是通過瀏覽量進(jìn)行排序的,不妨試試看。作者引入該代碼僅為讀者了解循環(huán),也為后面的爬蟲知識(shí)埋下伏筆。
案例3:奇數(shù)和偶數(shù)計(jì)算
最后補(bǔ)充一個(gè)奇數(shù)和偶數(shù)計(jì)算的案例,其基本流程如下圖所示:
代碼如下:
numbers=[12, 37, 5, 42, 8, 3]
even=[]
odd=[]
while len(numbers) > 0:
number=numbers.pop()
if(number % 2==0): #偶數(shù)判斷
even.append(number)
else:
odd.append(number)
#輸出結(jié)果
print(even)
print(odd)
輸出結(jié)果如下:
[8, 42, 12]
[3, 5, 37]
for循環(huán)語(yǔ)句的基本格式如下:
for <var> in <sequence>:
<statement>
<statement>
流程圖如下:
自定義循環(huán)變量var遍歷sequence序列中的每一個(gè)值,每個(gè)值執(zhí)行一次循環(huán)的語(yǔ)句塊。sequences表示序列,常見類型有l(wèi)ist(列表)、tuple(元組)、strings(字符串)和files(文件)。下面的代碼是計(jì)算1到100的求和,輸出三角形星號(hào)的示例。
#元組循環(huán)
tup=(1,2,3,4,5)
for n in tup:
print(n)
else:
print('End for\n')
#計(jì)算1+2+...+100
s=0
for i in range(101):
s=s + i
print('sum=', s)
#輸出三角形星號(hào)
for i in range(10):
print("*"*i)
輸出結(jié)果如下圖所示,循環(huán)遍歷元組tup變量中的值,依次獲取并輸出;然后計(jì)算1累加到100,range(101)表示依次獲取101范圍內(nèi)的100個(gè)數(shù)字,其累加結(jié)果為5050;最后輸出星號(hào)三角形,print “ * ” * i 代碼中,第一個(gè)星號(hào)表示輸出星號(hào)字符串,第二個(gè)星號(hào)是乘法,表示輸出5個(gè)星號(hào),終輸出三角形。打印圖形是編程基礎(chǔ),使用Python實(shí)現(xiàn)要比C語(yǔ)言容易很多,但原理邏輯是一樣的。
Break和Continue是兩個(gè)常用的跳出循環(huán)語(yǔ)句。
跳出最內(nèi)層while、for循環(huán),在語(yǔ)句塊執(zhí)行過程中終止循環(huán),并且跳出整個(gè)循環(huán)。
s=0
num=0
while num<20:
num +=1
s +=num
if s > 100:
break
print("The sum is", s)
# The sum is 105
當(dāng)求和變量s大于100的時(shí)候,進(jìn)入if判斷,執(zhí)行break跳出循環(huán),最后輸出105。
在語(yǔ)句塊執(zhí)行過程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)。
for num in range(10):
if num % 2==0:
print("even number:", num)
continue
print("number:",num)
輸出結(jié)果如下,當(dāng)為偶數(shù)的時(shí)候continue跳出當(dāng)前循環(huán),for循環(huán)中只輸出偶數(shù)。
>>>
even number: 0
number: 1
even number: 2
number: 3
even number: 4
number: 5
even number: 6
number: 7
even number: 8
number: 9
>>>
pass語(yǔ)句是空語(yǔ)句,為了保持程序結(jié)構(gòu)的完整性所使用的。
# 輸出 Python 的每個(gè)字母
for letter in 'Python':
if letter=='h':
pass
print('這是 pass 塊')
print('當(dāng)前字母 :', letter)
print("Good bye!")
輸出結(jié)果如下圖所示:
while基本語(yǔ)法如下:
while expression:
while expression:
statement(s)
statement(s)
for基本語(yǔ)法如下:
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
下面以最簡(jiǎn)單的冒泡排序算法來補(bǔ)充循環(huán)嵌套知識(shí)。冒泡排序是最常見到的排序算法,也是很基礎(chǔ)的一種排序算法。它的實(shí)現(xiàn)思想是:
相鄰的兩個(gè)元素進(jìn)行比較,然后把較大的元素放到后面(正向排序),在一輪比較完后最大的元素就放在了最后一個(gè)位置,像魚兒在水中吐的氣泡在上升的過程中不斷變大。
def bubble_sort(list):
count=len(list)
for i in range(count):
for j in range(i + 1, count):
if list[i] > list[j]:
list[i], list[j]=list[j], list[i]
return list
#排序算法
list=[3, 91, 23, 14, 56, 9]
print("排序前:", list)
res=bubble_sort(list)
print("排序后:", res)
輸出結(jié)果如下:
你可能會(huì)疑惑bubble_sort()是什么?其實(shí)它是一個(gè)自定義函數(shù),下面我們馬上講解。
當(dāng)讀者需要完成特定功能的語(yǔ)句塊時(shí),需要通過調(diào)用函數(shù)來完成對(duì)應(yīng)的功能。函數(shù)分為無參數(shù)函數(shù)和有參數(shù)函數(shù),當(dāng)函數(shù)提供不同的參數(shù)時(shí),可以實(shí)現(xiàn)對(duì)不同數(shù)據(jù)的處理。下面從自定義函數(shù)、系統(tǒng)自帶函數(shù)、第三方庫(kù)函數(shù)三個(gè)方面進(jìn)行講解。
(1) 定義方法
為了簡(jiǎn)化編程,提高代碼的復(fù)用性,可以自定義函數(shù),函數(shù)定義如下:
def funtion_name([para1,para2...paraN]):
statement1
statement2
....
[return value1,value2...valueN]
其中:
函數(shù)調(diào)用時(shí),形參被賦予真實(shí)的參數(shù),然后執(zhí)行函數(shù)體,并在函數(shù)結(jié)束調(diào)用時(shí)返回結(jié)果。Return語(yǔ)句表示退出函數(shù)并返回到函數(shù)被調(diào)用的地方,返回值傳遞給調(diào)用程序。
首先來看一個(gè)無返回值的求和函數(shù)fun1(),代碼如下:
#函數(shù)定義
def fun1(a,b):
print(a,b)
c=a + b
print('sum=',c)
#函數(shù)調(diào)用
fun1(3,4)
# 3 4
# sum=7
再來看一個(gè)包含多個(gè)參數(shù)返回的計(jì)算器函數(shù)fun2(),代碼如下,return返回五個(gè)結(jié)果。
#函數(shù)定義
def fun2(a,b):
print(a,b)
X=a + b
Y=a - b
Z=a * b
M=a / b
N=a ** b
return X,Y,Z,M,N
#函數(shù)調(diào)用
a,b,c,d,e=fun2(4,3)
print('the result are ',a,b,c,d,e)
re=fun2(2,10)
print(re)
輸出結(jié)果如下,依次返回加法、減法、乘法、除法、冪運(yùn)算結(jié)果。
>>>
4 3
the result are 7 1 12 1.3333333333333333 64
2 10
(12, -8, 20, 0.2, 1024)
>>>
(2) 自定義函數(shù)參數(shù)含預(yù)定義
預(yù)設(shè)值是在自定義函數(shù)基礎(chǔ)上,對(duì)某些參數(shù)賦予預(yù)定義值。例如:
def fun3(a,b,c=10):
print(a,b,c)
n=a + b + c
return n
print('result1=',fun3(2,3))
print('result2=',fun3(2,3,5))
第一次調(diào)用a為2,b為3,c為預(yù)定義值10,求和輸出15;第二次調(diào)用修改了預(yù)定義值c,賦值為5,求和即為2+3+5=10。
注意:預(yù)定義值得參數(shù)不能先于無預(yù)定義值參數(shù);同時(shí),函數(shù)調(diào)用時(shí),建議采用一對(duì)一賦值,也可以在函數(shù)調(diào)用中給出具體形參進(jìn)行賦值,但需要注意的是在函數(shù)調(diào)用過程中(使用函數(shù)時(shí)),有預(yù)定義值的參數(shù)不能先于無預(yù)定義值參數(shù)被賦值。
Python系統(tǒng)內(nèi)部提供了一些庫(kù)函數(shù)供大家使用,這里主要介紹最常見的四個(gè)庫(kù)函數(shù),即str字符串庫(kù)函數(shù)、math數(shù)據(jù)庫(kù)函數(shù)、os操作系統(tǒng)庫(kù)函數(shù)、socket網(wǎng)絡(luò)套接字庫(kù)函數(shù)。Python常見內(nèi)部庫(kù)函數(shù)如下:
下面代碼是這四個(gè)常見內(nèi)部庫(kù)函數(shù)的具體用法,代碼如下:
# -*- coding:utf-8 -*-
#字符串庫(kù)函數(shù)
str1="hello world"
print('計(jì)算字符串長(zhǎng)度:', len(str1))
str2=str1.title()
print('首字母大寫標(biāo)題轉(zhuǎn)換:', str2)
str3='12ab34ab56ab78ab'
print('字符串替換:', str3.replace('ab',' '))
#數(shù)學(xué)庫(kù)函數(shù)
import math
print(math.pi)
num1=math.cos(math.pi/3)
print('余弦定律:', num1)
num2=pow(2,10)
print('冪次運(yùn)算:', num2)
num3=math.log10(1000)
print('求以10為底的對(duì)數(shù):', num3)
#操作系統(tǒng)庫(kù)函數(shù)
import os
print('輸出當(dāng)前使用平臺(tái):', os.name)
path=os.getcwd()
print('獲取當(dāng)前工作目錄', path)
os.system('taskkill /F /IM iexplore.exe') #關(guān)閉瀏覽器進(jìn)程
#網(wǎng)絡(luò)套接字庫(kù)函數(shù)
import socket
ip=socket.gethostbyname('www.baidu.com')
print('獲取百度ip地址', ip)
輸出結(jié)果如下圖所示。
Python作為一門開源語(yǔ)言,它支持各種第三方提供的開源庫(kù)供我們使用。其使用第三方函數(shù)庫(kù)時(shí)的具體格式為:
表示“第三方函數(shù)名.方法(參數(shù))”。例如httplib\httplib2庫(kù)是針對(duì)HTTP和HTTPS的客戶端協(xié)議,使用httplib2庫(kù)函數(shù)之前,如果沒有安裝httplib2庫(kù)會(huì)報(bào)錯(cuò)“ImportError: No module named httplib2”,如圖2.18所示。
在Linux環(huán)境中,輸入命令“easy_install httplib2”可以實(shí)現(xiàn)自動(dòng)安裝擴(kuò)展包,Windows環(huán)境下需要安裝pip或easy_install工具,再調(diào)用命令執(zhí)行安裝。在后續(xù)文章會(huì)講解pip安裝工具及用法,后面章節(jié)也會(huì)介紹各種第三方庫(kù)函數(shù)實(shí)現(xiàn)數(shù)據(jù)爬取和分析操作。
無論如何,作者都希望這篇文章能給您普及一些Python知識(shí),更希望您能跟著我一起寫代碼,一起進(jìn)步。如果文章能給您的研究或項(xiàng)目提供一些微不足道的思路和幫助,就更欣慰了。作者最大的期望就是文章中的一些故事、話語(yǔ)、代碼或案例對(duì)您有所幫助,致那些努力奮斗的人。
遺憾,讓我們懂得完美。
逝去,讓我們不斷前行。
她夜色中的身姿是那么的美。
————————————————
版權(quán)聲明:本文為CSDN博主「Eastmount」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Eastmount/article/details/108479670
習(xí)目標(biāo)
將指定的純文本文檔轉(zhuǎn)換為HTML文件。
實(shí)現(xiàn)目標(biāo)
在瀏覽器中打開最終生成的HMTL文件,呈現(xiàn)下圖的樣式。
關(guān)鍵內(nèi)容
python數(shù)據(jù)挖掘,python爬蟲
練習(xí)這個(gè)項(xiàng)目,最好具備一些HTML基礎(chǔ)。
如果沒有接觸過,這里我做一下簡(jiǎn)單的介紹。
HTML文件是我們常見的網(wǎng)頁(yè)文件,其中包含HTML源代碼。
HTML源代碼由HTML標(biāo)簽組成,這些標(biāo)簽往往是成對(duì)出現(xiàn)(個(gè)別除外)。
一個(gè)簡(jiǎn)單的HTML示例代碼:
<html>
<head>
<meta charset="gbk">
<title>...</title>
</head>
<body>
<h1>一級(jí)標(biāo)題</h1>
<p>我是段落內(nèi)容。</p>
</body>
</html>
上方的代碼復(fù)制到一個(gè)文本文檔中,并將文件后綴改為“.html”,在瀏覽器中打開即可看到效果。
這里我們看到了一些標(biāo)簽:
另外,在這個(gè)案例中我們還會(huì)用到一些標(biāo)簽。
案例分析
當(dāng)我們了解了HTML的結(jié)構(gòu)和各種標(biāo)簽的作用,接下來,我們分析一下,如何進(jìn)行文檔與HTML的轉(zhuǎn)換。
1、原始文檔中的標(biāo)題都是大寫英文字母開頭和英文字母結(jié)尾。
2、文檔中除了標(biāo)題,就是段落和列表,段落和列表的區(qū)別是:列表中包含列表項(xiàng)。
3、段落中存在換行。
4、列表項(xiàng)(以“●”開頭)需要放置于列表中。
3、文檔中“*”之間的內(nèi)容需要加重顯示。
實(shí)現(xiàn)過程
一、定義處理原始文檔內(nèi)容的模塊(util.py)
1、定義一個(gè)生成器“l(fā)ines”,能夠?yàn)樵嘉臋n結(jié)尾添加空行。
def lines(file):
for line in file:
yield line # 生成文件的每一行內(nèi)容
yield '\n' # 為文件末尾添加空行,保證最后添加到block的行能夠被生成。
為什么需要在文檔末尾添加空行,可以看下方生成器“blocks”代碼中的注釋進(jìn)行理解。
2、定義一個(gè)生成器“blocks”,對(duì)原始文檔內(nèi)容進(jìn)行讀取,當(dāng)讀取到空行,將已讀取的內(nèi)容連接為內(nèi)容塊并生成。
def blocks(file):
block=[]
for line in lines(file):
if line.strip(): # 如果讀取的行不是空行
block.append(line) # 添加行內(nèi)容到列表
elif block: # 如果讀取空行(如果文件末尾不是空行,則不會(huì)執(zhí)行下方語(yǔ)句塊,導(dǎo)致上方語(yǔ)句塊最后一次添加的內(nèi)容無法生成。)
yield ''.join(block).strip() # 連接列表中所有的行內(nèi)容
block=[]
二、定義處理文檔的主程序模塊(main01.py)
在這個(gè)模塊中,我們需要導(dǎo)入一些需要使用的內(nèi)置模塊。
以下是主程序的具體代碼,大家可以通過注釋理解整個(gè)處理過程。
import sys, re
from util import *
print('<html><head><meta charset="gbk"><title>doc.txt</title></head><body>') # 添加HTML基本標(biāo)簽
blocks=blocks(sys.stdin) # 獲取系統(tǒng)標(biāo)準(zhǔn)輸入
for block in blocks: # 遍歷文件內(nèi)容
block=re.sub('\*(.+)\*', '<strong>\1</strong>', block) # 替換內(nèi)容塊中兩個(gè)星號(hào)間的內(nèi)容為加重樣式
block=re.sub(r'\n *- *(.+)', '\n<li>\1</li>', block) # 替換內(nèi)容塊中以“-”開頭的內(nèi)容為列表項(xiàng)
block=re.sub(r'([^:>])\n', '\1<br/>\n', block) # 替換內(nèi)容塊中換行符“\n”為換行標(biāo)簽
if re.match(r'(^[A-Z][\w ]+[A-Za-z]$)', block): # 匹配大寫字母開頭和以字母結(jié)尾的內(nèi)容
print('<h1>' + block + '</h1>') # 添加一級(jí)標(biāo)題標(biāo)簽
elif '<li>' in block: # 如果內(nèi)容塊包含列表項(xiàng)
print('<ul>' + block + '</ul>') # 添加項(xiàng)目列表標(biāo)簽
else:
print('<p>' + block + '</p>') # 添加段落標(biāo)簽
print('</body></html>') # 添加HTML結(jié)束標(biāo)簽
當(dāng)我們完成以上代碼的編寫,就可以通過命令行終端執(zhí)行代碼。
python main01.py <doc.txt> doc.html
通過以上命令就能夠讓主程序讀取項(xiàng)目文件夾下的“doc.txt”,并且經(jīng)過處理后輸出文件“doc.html”。
這個(gè)文件會(huì)自動(dòng)出現(xiàn)在PyCharm左側(cè)文件列表中,在文件名稱上點(diǎn)擊鼠標(biāo)右鍵,選擇瀏覽器中打開(Open in Browser),就能夠使用指定的瀏覽器進(jìn)行瀏覽了。
在下一篇練習(xí)項(xiàng)目的教程中,我們將通過另外一種復(fù)雜的,但是具有很好擴(kuò)展性的方式重新實(shí)現(xiàn)這個(gè)項(xiàng)目。
TML是一種用來描述網(wǎng)頁(yè)的標(biāo)記性語(yǔ)言。學(xué)習(xí)HTML可能并不難,主要是要記一些HTML標(biāo)簽和標(biāo)簽代表的含義。下面PHP程序員雷雪松根據(jù)使用的情況,整理出平時(shí)常用的HTML標(biāo)簽。
HTML基礎(chǔ)之HTML常用標(biāo)簽-PHP程序員雷雪松的博客
<!--<!DOCTYPE> 是HTML5聲明,<!DOCTYPE> 必須是 HTML 文檔的第一行,位于 <html> 標(biāo)簽之前。<!DOCTYPE>是指示 web 瀏覽器關(guān)于頁(yè)面使用哪個(gè) HTML 版本進(jìn)行編寫的指令。-->
<!DOCTYPE html>
<html>
<!-- head標(biāo)簽是所有頭部元素的容器。head標(biāo)簽內(nèi)的元素可包含腳本、樣式表和提供頁(yè)面的元信息等等。以下標(biāo)簽都可以添加到 head 部分:title、base、link、meta、script 以及style。頭部的內(nèi)容不會(huì)顯示在瀏覽器的。 -->
<head>
<!-- 設(shè)置字符集,如果字符集不對(duì),可能導(dǎo)致亂碼。一般建議utf-8國(guó)際編碼 -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312或utf-8或gbk" />
<!-- SEO相關(guān)標(biāo)簽,title定義文檔的標(biāo)題,百度建議一般不要超過32位,meta定義頁(yè)面關(guān)鍵詞和頁(yè)面的描述-->
<title>網(wǎng)頁(yè)標(biāo)題</title>
<meta name="keywords" content="PHP程序員,技術(shù)博客,個(gè)人博客,雷雪松" />
<meta name="description" content="PHP程序員,雷雪松(Raykaeso)的博客是一個(gè)優(yōu)秀的個(gè)人技術(shù)博客。PHP程序員雷雪松的博客記錄了Linux學(xué)習(xí),PHP開發(fā)與編程,Web前端開發(fā),MySQL學(xué)習(xí)和教程,NoSQL數(shù)據(jù)庫(kù)教程以及個(gè)人的人生經(jīng)歷和觀點(diǎn)。" />
<link rel="stylesheet" type="text/css" href="main.css" />
<script type="text/javascript" src="main.js"></script>
</head>
<!-- 正文部分,所有在瀏覽器上可見的內(nèi)容必須寫在body標(biāo)簽內(nèi)部 -->
<body>
</body>
</html>
a、布局標(biāo)簽
div標(biāo)簽定義文檔中的分區(qū)或節(jié)(division/section),可以把文檔分割為獨(dú)立的、不同的部分,主要用于布局。
aside標(biāo)簽的內(nèi)容可用作文章的側(cè)欄,<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
header標(biāo)簽定義頁(yè)面的頭部(介紹信息),<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
section標(biāo)簽定義文檔中的節(jié)(section、區(qū)段)。比如章節(jié)、頁(yè)眉、頁(yè)腳或文檔中的其他部分,<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
footer 標(biāo)簽定義文檔或節(jié)的頁(yè)腳,通常包含文檔的作者、版權(quán)信息、使用條款鏈接、聯(lián)系信息等等,<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
article標(biāo)簽規(guī)定文章獨(dú)立的其他內(nèi)容,比如:標(biāo)題、內(nèi)容、評(píng)論,<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
b、文本標(biāo)簽
h1-h6標(biāo)簽可定義標(biāo)題
p標(biāo)簽定義段落
b/strong標(biāo)簽加粗
em標(biāo)簽來表示強(qiáng)調(diào)的文本,斜體
strong標(biāo)簽表示重要文本
u標(biāo)簽下劃線
s標(biāo)簽刪除線
br標(biāo)簽表示回車換行
hr標(biāo)簽表示水平線
span標(biāo)簽被用來組合文檔中的行內(nèi)元素。
blockquote標(biāo)簽表示塊引用
pre標(biāo)簽可定義預(yù)格式化的文本,保持原有格式的一種標(biāo)簽。
sub標(biāo)簽下標(biāo),
sup>標(biāo)簽上標(biāo)
表示一個(gè)空格
©表示版權(quán)符
<表示<
>表示>
c、a標(biāo)簽定義超鏈接,指定頁(yè)面間的跳轉(zhuǎn)。鏈接可以指向外部鏈接或者頁(yè)面內(nèi)部id錨點(diǎn),可以在當(dāng)前頁(yè)面打開,新開窗口。
<a href="指向的鏈接地址或者網(wǎng)址#ID名" target="_blank|_self|_top|_parent">百度</a>
d、多媒體標(biāo)簽
img標(biāo)簽主要在網(wǎng)頁(yè)中插入圖像,可以定義圖片替換文本、顯示寬度和高度、是否帶邊框,建議等比例設(shè)置,否則圖像會(huì)變形。
<img src="圖片地址" alt="替換文本,圖片打不開的時(shí)候顯示" width="圖片寬度" height="高度" border="0" />
audio標(biāo)簽定義聲音,比如音樂或其他音頻流。<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
<audio src="someaudio.wav">您的瀏覽器不支持 audio 標(biāo)簽。</audio>
video標(biāo)簽定義視頻,比如電影片段或其他視頻流。<span style="color: #ff0000;">html5新增標(biāo)簽</span>。
<video src="movie.ogg" controls="controls">您的瀏覽器不支持 video 標(biāo)簽。</video>
e、序列化標(biāo)簽
ul和li無序列表標(biāo)簽
<ul>
<li>HTML</li>
<li>JS</li>
<li>PHP</li>
</ul>
ol和li有序列表標(biāo)簽,可以使用type屬性規(guī)定有序列表符號(hào)的類型。1 按數(shù)字有序排列,為默認(rèn)值,(1、2、3、4);a 按小寫字母有序排列,(a、b、c、d);A 按字母大寫有序排列,(A、B、C、D)。i 按小寫羅馬字母有序,(i, ii, iii, iv);I 按小寫羅馬字母有序,(I, II, III, IV)。
<ol>
<li>HTML</li>
<li>JS</li>
<li>PHP</li>
</ol>
dl標(biāo)簽定義了定義列表(definition list),dl標(biāo)簽用于結(jié)合 dt(定義列表中的項(xiàng)目)和 dd(描述列表中的項(xiàng)目)。
<dl>
<dt>計(jì)算機(jī)</dt>
<dd>用來計(jì)算的儀器 ... ...</dd>
</dl>
f、表格標(biāo)簽
table標(biāo)簽和tr標(biāo)簽,th標(biāo)簽和td標(biāo)簽,合并單元格。
<table width="100%" height="193" border="1" cellpadding="0" cellspacing="0" bordercolor="#FF0000" bgcolor="#000000" background="">
<tr>
<th>標(biāo)題</th>
<th>標(biāo)題</th>
</tr>
<tr>
<!-- 合并橫向單元格 -->
<td colspan="2" nowrap="nowrap">&nbsp;</td>
</tr>
<tr>
<td></td>
<!-- 合并縱向單元格 -->
<td rowspan="2"> </td>
</tr>
<tr>
<td height="16"> </td>
</tr>
</table>
g、表單標(biāo)簽
form標(biāo)簽定義提交方式、提交地址、表單字符集以及如何對(duì)其進(jìn)行編碼,需要提交的表單一定要放在form標(biāo)簽內(nèi)。
<form id="form1" name="form1" method="post|get" enctype="multipart/form-data" action="提交到的地址"></form>
input標(biāo)簽用于搜集用戶信息
<input name="userName" type="text" maxlength="5" size="100" value="asdfasdfasfd" />
密碼,輸入的字符會(huì)被掩碼(顯示為星號(hào)或原點(diǎn))
<input name="pwd" type="password" maxlength="5" size="100" value="" />
文件類型的表單,上傳文件時(shí),form表單一定要設(shè)置為enctype="multipart/form-data"
<input type="file" name="file" />
隱藏表單
<input type="hidden" name="country" value="China" />
提交
<input type="submit" name="Submit" value="提交" disabled="disabled" />
重置
<input type="reset" name="Submit2" value="重置" />
radio單選
<input name="sex" type="radio" value="1" />男
<input name="sex" type="radio" value="2" checked="checked" />女
checkbox多選
<input name="skill" type="checkbox" value="1" checked="checked" />PHP
<input name="skill" type="checkbox" value="2" />前端
<input name="skill" type="checkbox" value="2" />數(shù)據(jù)庫(kù)
<span style="color: #ff0000;">注:checked="checked"可以簡(jiǎn)寫成checked</span>
label標(biāo)簽為input元素定義標(biāo)注,如果您點(diǎn)擊label元素文本,就會(huì)觸發(fā)此input控件。
textarea標(biāo)簽,設(shè)置文本區(qū)內(nèi)的可見行數(shù)和寬度
<textarea name="content" cols="30" rows="10">大段文本輸入框</textarea>
button標(biāo)簽定義一個(gè)按鈕
提交按鈕
<button type="submit" value="提交">提交</button>
重置按鈕
<button type="reset" value="重置">重置</button>
select標(biāo)簽和option標(biāo)簽下拉列表
單選菜單列表框
<select name="user">
<option value="1">ray</option>
<option value="2" selected="selected">raykaeso</option>
</select>
多選列表下拉框,shift加鼠標(biāo)單擊,可以連續(xù)選擇多個(gè)選擇,CTRL+鼠標(biāo)點(diǎn)擊,可以點(diǎn)擊多個(gè)。
<select name="user" size="10" multiple="multiple">
<option value="1">雷雪松</option>
<option value="2" selected="selected">ray</option>
<option value="3">raykaeso</option>
</select>
注:selected="selected"可簡(jiǎn)寫成selected,表示選中
a、HTML標(biāo)簽和屬性是不區(qū)分大小寫的,建議HTML標(biāo)簽和屬性都小寫,屬性值必須用雙引號(hào)包圍。
b、HTML標(biāo)簽都是以開始標(biāo)簽起始,以結(jié)束標(biāo)簽終止。大部分HTML標(biāo)簽都是成對(duì)出現(xiàn)的,稱為雙標(biāo)簽,比如:p標(biāo)簽、div標(biāo)簽,也有的HTML標(biāo)簽在開始標(biāo)簽中結(jié)束的標(biāo)簽,稱為單標(biāo)簽,比如:hr標(biāo)簽、br標(biāo)簽。大多數(shù) HTML 元素可擁有屬性,文本內(nèi)容都是寫在開始標(biāo)簽與結(jié)束標(biāo)簽之間。
c、HTML標(biāo)簽之間盡量縮進(jìn)與換行,每行代碼不要過長(zhǎng),方便閱讀和維護(hù)。
d、HTML標(biāo)簽使用必須符合標(biāo)簽嵌套規(guī)則。禁止a標(biāo)簽嵌套a標(biāo)簽,p標(biāo)簽嵌套div標(biāo)簽。
e、建議不使用HTML已經(jīng)廢棄的或者不贊成使用的標(biāo)簽,少使用table布局、iframe框架嵌套以及flash播放器。
來源:PHP程序員雷雪松的博客 -HTML基礎(chǔ)之HTML常用標(biāo)簽(http://www.leixuesong.cn/2045)
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。