希望系統(tǒng)性學(xué)習(xí)一門編程語言的朋友請(qǐng)關(guān)注我,本專欄后續(xù)會(huì)持續(xù)分享優(yōu)質(zhì)文章。
本篇為第五篇介紹Python知識(shí)的文章,本篇也開始接觸到該門語言的邏輯語法部分,這一部分在編程語言中使用很廣泛,小到一段語句,大到一個(gè)模塊里面都有很多邏輯判斷語句,所以很有必要細(xì)致的去理解它,并將他的一些常用格式熟記于心,好了開始我們下面的文章。
本節(jié)主要編寫的為Python語句中if語句的編寫要求:
>>>
>>> if 1 > 2:
... print('a')
... else:
... print('b')
...
b
>>>
本段程序?yàn)橐粋€(gè)簡單的 if...else 語句,這個(gè)語句主要是進(jìn)行二個(gè)數(shù)做大小的判斷,得出的結(jié)果為一個(gè)bool值,if語句在bool值為True時(shí)執(zhí)行打印字符a,為False時(shí)執(zhí)行打印字符b,通過這樣一段代碼我們就可以大概的看到if語句的執(zhí)行條件,執(zhí)行過程等情況。
針對(duì) if 結(jié)構(gòu)語言本專欄做了以下細(xì)致的總結(jié),大家可以細(xì)致的體會(huì)其語法作用。
if語句的基本語法如下所示:
if condition:
# 如果條件為True,則執(zhí)行這里的代碼塊
# 可以有多行代碼
else:
# 如果條件為False,則執(zhí)行這里的代碼塊
# 可以有多行代碼
在if語句中,condition是一個(gè)表達(dá)式,可以是返回True或False的任何東西。
常見的比較運(yùn)算符包括:
多個(gè)條件:
你也可以使用邏輯運(yùn)算符組合多個(gè)條件:
單向分支結(jié)構(gòu):
if <條件表達(dá)式>:
執(zhí)行語句
...
雙向分支結(jié)構(gòu):
if <條件表達(dá)式>:
執(zhí)行語句
...
else:
執(zhí)行語句
...
多分支結(jié)構(gòu):
if <條件表達(dá)式>:
執(zhí)行語句
...
elif <條件表達(dá)式>:
執(zhí)行語句
...
else:
執(zhí)行語句
...
存在多個(gè)elif語句時(shí),Python會(huì)按照順序逐個(gè)檢查每個(gè)條件,執(zhí)行第一個(gè)滿足條件的代碼塊,然后跳過其他條件的檢查。如果前面的elif條件滿足了,那么后面的elif語句就不會(huì)再被執(zhí)行。
嵌套分支結(jié)構(gòu):
if <條件表達(dá)式>:
if <條件表達(dá)式>:
執(zhí)行語句
...
else:
執(zhí)行語句
...
else:
if <條件表達(dá)式>:
執(zhí)行語句
...
else:
執(zhí)行語句
...
注意:每一層的縮進(jìn)格式要統(tǒng)一,否則可能會(huì)導(dǎo)致意想不到的情況。
讓優(yōu)質(zhì)的技術(shù)更自由、開放的傳播,我是「技術(shù)小劍客」歡迎你的關(guān)注和留言。
在 2011 年開始寫CSS的時(shí)候),從來沒有懷疑過這種語言會(huì)發(fā)生多大的變化。我還記得使用PIE.htc 讓 border-radius 適配所有瀏覽器,我的同事做了一個(gè)PHP腳本,生成一個(gè)PNG來圓角。
然而,在過去的幾年中出現(xiàn)了大量的CSS新特性。其中一些語句也可以被視為if語句,比如@supports樣式:
@supports (border-radius: 50%) {
// don't use PIE.htc! {}
}
還有一個(gè)經(jīng)典的媒體查詢,已經(jīng)存在了十多年:
@media (max-width: 1000px) {
//maybe a mobile sized device? {}
}
還有一個(gè)新的 camp(),有點(diǎn)不同 :
width: clamp(1000px, 50%, 10vw);
但像這樣的行為:
width: clamp(1000px >= (50% >= 10vw));
看得頭疼。
但這些都可以說只是 if 語句。如果我們想要一個(gè) if/else 語句,我們需要做這樣的事情。
@media (max-width: 1000px) and (prefers-color-scheme: dark) {
//maybe a mobile device in dark mode {}
}
@media (max-width: 1000px) and (prefers-color-scheme: light) {
//maybe a mobile device in light mode {}
}
這很煩人。
但好消息是 在新提議的 @When 特性可以解決我們的煩惱。它這么用:
@when media(max-width: 1000px) {
// 做點(diǎn)什么
}
這很酷,但更酷的是還有 else:
@when media(max-width: 1000px) {
// 移動(dòng)
} @else {
// 平板
}
機(jī)智的你可能也想到了,那肯定還有 else if 了,沒錯(cuò)還真有:
@when media(max-width: 1000px) {
// 平板
} @else media(max-width: 700px) { {
// 移動(dòng)
} @else {
// PC
}
我們也有可能可以這樣做:
@when media(max-width: 700px) {
@when (prefers-color-scheme: dark) {
//dark mode on mobile device
} @else {
//light mode on mobile device
}
}
我說 "可能" 是因?yàn)樵撎匦赃€在提案中,但我相信最終會(huì)出來的(沒出來我把頭發(fā)染綠)。
目前(20211023),瀏覽器的支持情況是怎樣的?零。少到連 Can I Use 都沒有。但隨著新的CSS樣式不斷推出,我相信我們很快就會(huì)看到它。
作者:Kenton de Jong 譯者:前端小智 來源:codingnconcept 原文:https://kentondejong.medium.com/css-is-finally-getting-if-else-statements-3fabcec72a1f
、流程控制
1. 作用:控制代碼的執(zhí)行順序
2. 分類
2.1順序結(jié)構(gòu):從上到下依次執(zhí)行代碼語句
2.2選擇結(jié)構(gòu):
1. if語句
簡單if結(jié)構(gòu)
if(條件表達(dá)式){
表達(dá)式成立時(shí)執(zhí)行的代碼段
}
注意 : 除零值以外,其他值都為真,以下條件為假值false
if(0){}
if(0.0){}
if(""){} //空字符串
if(undefined){}
if(NaN){}
if(null){}
特殊寫法 : { }可以省略,一旦省略,if語句只控制其后的第一行代碼
2. if - else結(jié)構(gòu):
if(條件表達(dá)式){
//條件成立時(shí)執(zhí)行
}else{
//條件不成立時(shí)選擇執(zhí)行
}
3.多重分支結(jié)構(gòu):
if(條件1){
//條件1成立時(shí)執(zhí)行
}else if(條件2){
//條件2成立時(shí)執(zhí)行
}else if(條件3){
//條件3成立時(shí)執(zhí)行
}...else{
//條件不成立時(shí)執(zhí)行
}
2. switch語句:
語法 :
switch(value){
case 值1 :
//value與值1匹配全等時(shí),執(zhí)行的代碼段
break; //結(jié)束匹配
case 值2 :
//value與值2匹配全等時(shí),執(zhí)行的代碼段
break;
case 值3 :
//value與值3匹配全等時(shí),執(zhí)行的代碼段
break;
default:
//所有case匹配失敗后默認(rèn)執(zhí)行的語句
break;
}
使用時(shí)要注意的:
1. switch語句用于值的匹配,case用于列出所有可能的值;只有switch()表達(dá)式的值與case的值匹配全等時(shí),才會(huì)執(zhí)行case對(duì)應(yīng)的代碼段
2. break用于結(jié)束匹配,不再向后執(zhí)行;可以省略,break一旦省略,會(huì)從當(dāng)前匹配到的case開始,向后執(zhí)行所有的代碼語句,直至結(jié)束或碰到break跳出
3. default用來表示所有case都匹配失敗的情況,一般寫在末尾,做默認(rèn)操作
4. 多個(gè)case共用代碼段
case 值1:
case 值2:
case 值3:
//以上任意一個(gè)值匹配全等都會(huì)執(zhí)行的代碼段
3.循環(huán)結(jié)構(gòu):
作用 根據(jù)條件,重復(fù)執(zhí)行某段代碼
1. while循環(huán):
定義循環(huán)變量;
while(循環(huán)條件){
條件滿足時(shí)執(zhí)行的代碼段
更新循環(huán)變量;
}
2. do-while循環(huán):
do{
循環(huán)體;
更新循環(huán)變量
}while(循環(huán)條件);
while 與do-while循環(huán)的區(qū)別 :
while 循環(huán)先判斷循環(huán)條件,條件成立才執(zhí)行循環(huán)體
do-while 循環(huán)不管條件是否成立,先執(zhí)行一次循環(huán)體
3. for 循環(huán)
for(定義循環(huán)變量;循環(huán)條件;更新循環(huán)變量){
循環(huán)體;
}
循環(huán)控制 :
break 強(qiáng)制結(jié)束循環(huán)
continue 結(jié)束當(dāng)次循環(huán),開始下一次循環(huán) 循環(huán)嵌套 : 在循環(huán)中嵌套添加其他循環(huán)
二、函數(shù)
函數(shù)的作用:封裝一段待執(zhí)行的代碼
語法:
//函數(shù)聲明
function 函數(shù)名(參數(shù)列表){
函數(shù)體
return 返回值;
}
//函數(shù)調(diào)用
函數(shù)名(參數(shù)列表);
使用: 函數(shù)名自定義,見名知意,命名規(guī)范參照變量的命名規(guī)范。普通函數(shù)以小寫字母開頭,用于區(qū)分構(gòu)造函數(shù)(構(gòu)造函數(shù)使用大寫字母開頭,定義類)
三,匿名函數(shù)
匿名函數(shù):省略函數(shù)名的函數(shù)。
語法為:
匿名函數(shù)自執(zhí)行
(function (形參){
})(實(shí)參);
定義變量接收匿名函數(shù):
var fn = function (){};
fn(); //函數(shù)調(diào)用
四,作用域
JavaScript 中作用域分為全局作用域和函數(shù)作用域,以函數(shù)的{ }作為劃分作用域的依據(jù)
1,全局變量和全局函數(shù)
只要在函數(shù)外部使用 var 關(guān)鍵字定義的變量,或函數(shù)都是全局變量和全局函數(shù),在任何地方都可以訪問
所有省略 var 關(guān)鍵字定義的變量,一律是全局變量
2,局部變量/局部函數(shù)
在函數(shù)內(nèi)部使用 var 關(guān)鍵字定義的變量為局部變量,函數(shù)內(nèi)部定義的函數(shù)也為局部函數(shù),只能在當(dāng)前作用域中使用,外界無法訪問
3,作用域鏈 局部作用域中訪問變量或函數(shù),首先從當(dāng)前作用域中查找,當(dāng)前作用域中沒有的話,向上級(jí)作用域中查找,直至全局作用域
作者:YJ-TX
原文:https://www.cnblogs.com/yjtxin/p/12969576.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。