溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

18 19 20 py if語句 比較運(yùn)算符 斷言asser

發(fā)布時(shí)間:2020-02-29 22:18:53 來源:網(wǎng)絡(luò) 閱讀:197 作者:馬吉輝 欄目:大數(shù)據(jù)
第四課       條件語句(if、else和elif)
# coding:utf-8

python語言中是已縮進(jìn)的代碼塊進(jìn)行界定的 
#  條件語句(if、else和elif)
'''
if logic_expression:
    statement1
    statement2
    statement3
    ... ...
    statementn
elif logic_expression:
    statement1
    statement2
    ... ...
    statementn
else:
    statement1
    statement2
    ... ...
    statementn
otherstatement
'''
n = 3
if n == 3:            # python 語言中 默認(rèn)是以4個(gè)空格或者1個(gè)tab鍵
    print("n == 3")
    print("hello world")
# 同屬于一個(gè)代碼塊的縮進(jìn)必須是一樣的
print("------------------")

w = 2
if w == 1:
    print("w ==1")
else:               #別忘了else后面有個(gè)冒號(hào)
    print("w !=1")
print("------------------")  

n = 5
if n == 3:
    print("n == 3")
    print("xyz")
elif n == 4:
    print("n == 4")
    print("ddd")
elif n == 5:
    print("n == 5")
    print("xxx")
else:
    print("n != 3")
    print("abc")

name = input("請(qǐng)輸入您的名字:")
if name.startswith("B"):     #這個(gè)表示字符串的前綴,也就是說以B開頭的 這是一個(gè)方法
    print("名字以B開頭")
elif name.startswith("F"):
    print("名字以F開頭")
elif name.startswith("T"):
    print("名字以T開頭")
else:
    print("名字以其他字母開頭") 

這一部分的代碼用shell來寫
[hadoop@dev-hadoop-test03 majihui_test]$ cat a.sh 
#!/bin/bash

read -t 6 -p "pls input you name:" name

if [ $name == "majihui" ];then
        echo "你的名字:$name"
elif [ $name == "mjh" ];then
        echo "你的名字:$name"
else 
        echo "你的名字是其他"
fi
[hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh 
pls input you name:majihui
你的名字:majihui
[hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh
pls input you name:mjh
你的名字:mjh
[hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh
pls input you name:sdd
你的名字是其他

[root@localhost if]# cat ifjiaoben5.sh 【此腳本有bug 沒有去做出判斷是否兩個(gè)參數(shù)都是正整數(shù)】判斷正整數(shù)的方法上面有解釋到!
#!/bin/bash
if [ $1 -lt $2 ];then
        echo "$1<$2"
elif [ $1 -eq $2 ];then
        echo "$1=$2"
else
        echo "$1>$2"
fi
[root@localhost if]# sh ifjiaoben5.sh 1 2
1<2
[root@localhost if]# sh ifjiaoben5.sh 2 1
2>1
[root@localhost if]# sh ifjiaoben5.sh 1 1
1=1

---------------------------------------------------------------------
第五課 if條件語句嵌套代碼塊 
以下是老師的代碼

# coding:utf-8
name = input("您叫什么名字?")
if name.startswith("Bill"):
    if name.endswith("Gates"):
        print("歡迎Bill Gates先生")
    elif name.endswith("Clinton"):
        print("歡迎克林頓先生")
    else:
        print("未知姓名")
    print("hello world")
elif name.startswith("李"):
    if name.endswith("寧"):
        print("歡迎李寧老師")
    else:
        print("未知姓名")
else:
    print("未知姓名")
---------------------------
下面我們自己寫一個(gè)代碼
# coding:utf-8
name = input("請(qǐng)輸入 A B C 三個(gè)字母")
if name.startswith("A"):   #表示以A字母開頭的
    if name.endswith("a"): #表示以a字母結(jié)尾的
        print("您輸入的是Aa")
    elif name.endswith("b"):
        print("您輸入的是Ab")
    else:
        print("不知道你輸入的什么鬼")
    print("hello world") #這個(gè)代碼的意思是不管是什么都會(huì)輸出hello world
elif name.startswith("李"):
    if name.endswith("寧"):
        print("歡迎李寧老師")
    else:
        print("未知姓名")
else:
    print("不符合條件的輸入")

——————————————————————————————————————————————————————————————————————————————
第六課 比較運(yùn)算符
# coding:utf-8
# 比較運(yùn)算符

'''
x == y  x等于y
x < y   x 小于 y
x > y   x 大于 y
x <= y  x 小于等于 y
x >= y  x 大于等于 y
x != y  x 不等于 y

x is y      x和y是同一個(gè)對(duì)象
x is not y  x和y不是同一個(gè)對(duì)象   是指x y 是由完全不同的2個(gè)類創(chuàng)建的 

x in y   x 是 y容器的成員,y是列表[1,2,3,4],1 in y,10 in y
x not in y  x 不是y容器的成員

所有的比較運(yùn)算符的比較之后的值都是boolean類型 ******

shell中 
整數(shù)二元比較操作符
在[]中使用的比較符         在(())和[[]]中使用的比較符     說明
-eq                             ==          equal的縮寫 相等
-ne             !=                         not equal   不相等
-gt             >                         大于
-ge             >=                          大于等于
-lt             <                           小于
-le             <=                          小于等于

'''
print("Hello" == "Hello")  #值為True
print("hello" == "Hello")  #值為flase 說明python是嚴(yán)格按照字母大小寫的
# print("hello" = "Hello")  #只用一個(gè)等號(hào) = 的話 直接報(bào)錯(cuò)了

print(10 == 20)  #值為false

print("hello" > "Hello")        #值為true 說明小寫字母的h 阿斯克碼值大于 H
print("hello" > "hello world")  #值為flase 這個(gè)表示首先比較hello前綴是一樣的 那么就比較程度了 很明顯后面的長(zhǎng)度大于前面的長(zhǎng)度

list = [1,2,3,4,5]  # 此為列表
print(1 in list)    #值為true
print(10 in list)   #值為false
print(10 not in list)  #值為true 

print("--------------------------------")
# 把比較運(yùn)算符運(yùn)用到我們的條件語句中
x = 40
y = 30
s1 = "Hello"
s2 = "World"
if x < y:
    print("x < y")
else:
    print("x >= y")
# or  邏輯或  這個(gè)類似于shell總的 ||
# and 邏輯與   這個(gè)類似于shell中的 && 

shell 中為:
邏輯操作符
在[]中使用的邏輯操作符      在[[]]中使用的邏輯操作符             說明
-a  【and與】      &&          “與”兩端都是真,則為真
-o  【or或】       ||          “或”兩端有一個(gè)為真就為真
!               !           “非”相反則為真

'''
   and   True and True == True  
   or    False or False == False
'''
if x < y and s1 < s2:
    print("滿足條件")
elif not s1 > s2:
    print("基本滿足條件")
else:
    print("不滿足條件") 
第七課 斷言(Assertions
//斷言從字面上解釋就是 在滿足某一個(gè)條件之后,整個(gè)就斷了
斷言相當(dāng)于 條件語句 + 拋出異常

# 斷言(assertions)
'''
    if not condition
        crash program
        如果不滿足條件就跑出異常       //主要用到TDD的開發(fā)模式上
    TDD(Test-driven development) #測(cè)試驅(qū)動(dòng)開發(fā) 正常的開發(fā)模式是 開發(fā)完成之后 再進(jìn)行黑盒 白盒測(cè)試
                                 #TDD的這個(gè)過程是相反的 我在編寫程序之前 我先把這個(gè)塊給規(guī)定了 比如說我們的這個(gè)程序涉及到 x y z
比如我這個(gè)程序 必須要滿足 x > 20 y < 10 z == 50 才算成功   只要你改了條件,我這個(gè)程序就人為的讓他出錯(cuò) 
    x y z

    x > 20
    if x <= 20:
       拋出異常
    y < 10
    z == 50
'''

value = 20
assert value > 10     #這樣的輸出結(jié)果為 真的 但是 在輸出臺(tái) 沒有任何的輸出

value = 4
assert value > 10     #他不滿足條件了,就會(huì)跑出異常 也就是一堆代碼錯(cuò)誤。 
錯(cuò)誤代碼為:
/Users/majihui/pycharm_work/venv/bin/python /Users/majihui/pycharm_work/test05.py
Traceback (most recent call last):
  File "/Users/majihui/pycharm_work/test05.py", line 2, in <module>
    assert value > 10 
AssertionError

Process finished with exit code 1
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI