作業(yè)、變量、運(yùn)算符及位運(yùn)算及分支結(jié)構(gòu)

作業(yè):

1.寫出判斷一個(gè)數(shù)是否能同時(shí)被3和7整除的條件語句, 并且打印對(duì)應(yīng)的結(jié)果。

num = eval(input('請(qǐng)輸入需要判斷的數(shù)字:'))
if num % 3 == 0 and num % 7 == 0:
    print("%d能被3和7同時(shí)整除" % num)
else:
    print('%d不能同時(shí)被3和7整除' % num)
1.png

2.寫出判斷一個(gè)數(shù)是否能夠被3或者7整除,但是不能同時(shí)被3或者7整除, 并且打印對(duì)應(yīng)的結(jié)果.

num1 = eval(input('請(qǐng)輸入需要判斷的數(shù)字:'))
if num1 % 3 == 0 or num % 7 == 0:
    if num1 % 21 == 0:
        print('%d能被3或者7整除而且能同時(shí)被3或者7整除' % num1)
    else:
        print('%d能被3或7整除但是不能同時(shí)被3或7整除' % num1)
else:
    print('%d不能被3或者7整除也不能被3或7同時(shí)整除' % num1)
2.png

3.輸入年,寫代碼判斷輸入的年是否是閏年,如果是輸出'閏年',否則輸出'不是閏年'

year = eval(input('請(qǐng)輸入年份'))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print('%d年為閏年' % year)
else:
    print('%d年不是閏年' % year)
3.png

4.今天上課講了15000秒的課,編程計(jì)算今天上課時(shí)間是多少小時(shí),多少分鐘,多少秒;以‘XX時(shí)XX分XX秒’的方式表示。

tim_s = 15000
tim_h = int(15000 / 3600)
tim_mleft = int(tim_s % 3600)
tim_m=int(tim_mleft/60)
tim_s=0
print('今天上課{}小時(shí),{}分鐘,{}秒'.format(tim_h, tim_m, tim_s))
KDAL7G1Y(1BXWU6TCAI`V9U.png

5.定義兩個(gè)變量保存一個(gè)人的身高和體重,編程實(shí)現(xiàn)判斷這個(gè)人的身材是否正常!

公式: 體重(kg)/身高(m)的平方值在18.5 ~ 24.9之間屬于正常。

weight=52
high=1.75
if 18.5<= weight/high**2<=24.9:
    print('身材正常')
else:
    print('身材不正常')
5.png

1)表達(dá)式0x13 & 0x17的值 == (19)
2)表達(dá)式0x13 | 0x17的值==(23)
3)表達(dá)式0x13 ^ 0x17的值==(4)
4)  若x=12,y=13則x&y的結(jié)果是==(12)

5)在位運(yùn)算中,操作數(shù)每右移一位,其結(jié)果相當(dāng)于( )

  • 操作數(shù)乘以2
  • 操作數(shù)除以2
  • 操作數(shù)乘以4
  • 操作數(shù)乘以4

6).設(shè)x 是一個(gè)整數(shù)(16bit).若要通過x|y使x低度8位置1,高8位不變,則y的二進(jìn)制數(shù)是(0000000011111111)

總結(jié)

一、變量

1.什么是變量:聲明變量是用來申請(qǐng)空間保存數(shù)據(jù)的 聲明完變量后,使用變量就是使用變量里存儲(chǔ)的值。

聲明變量的語法:變量名 = 值
說明:變量名是由程序猿自己命名的:
要求:1.是標(biāo)識(shí)符 2.不能是關(guān)鍵字
規(guī)范:見名知義;滿足PEP8命名規(guī)范(所有的字母都小寫;多個(gè)單詞組合的變量名用下劃線連接 stu_name)
不能使用系統(tǒng)提供的函數(shù)名、類名、庫名等來給變量命名,如 True = 100
= -> 賦值符號(hào),將右邊的數(shù)據(jù)賦給左邊的變量(verb)
值 ->任何有結(jié)果的表達(dá)式。例如:數(shù)據(jù) 已經(jīng)聲明過的變量 運(yùn)算表達(dá)式等
例如下面的變量聲明:

b1 = 0b1011
b = 5
b2 = True
b3 = 10 + 2
b4 = 10 + 2 + b3
print(b, b1, b2, b4, sep='\t', end='\n')
2.變量的使用:使用變量就是使用變量里存儲(chǔ)的值;變量的值是可以修改的。
age = 50
age = 18
print(age)
3.同時(shí)聲明多個(gè)變量

a.同時(shí)聲明多個(gè)變量賦相同的值 變量名1=變量名2=變量名3=值
b.同時(shí)聲明多個(gè)變量賦不同的值,變量1,變量名2,變量名3 = 值1,值2,值3

c1 = c2 = c3 = 10
print(c1, c2, c3)
x, y = 10, 20
print(x, y)
4.python變量聲明的原理

先開辟空間存儲(chǔ)數(shù)據(jù)(存儲(chǔ)的數(shù)據(jù)需要多大的內(nèi)存,就開辟多少內(nèi)存空間,然后再將變量和數(shù)據(jù)對(duì)應(yīng)的內(nèi)存空間關(guān)聯(lián)在一起)
變量三要素:
a=10
值 - 變量存儲(chǔ)的數(shù)據(jù)(給變量賦值的數(shù)據(jù) 10 ) -使用變量
類型 - 給變量賦值的數(shù)據(jù)類型(int)
地址-給變量賦值的數(shù)據(jù)在內(nèi)存中的地址,也是變量中真正存儲(chǔ)的東西(0xff)

a = 10
print(a, type(a), id(a))
a = 100
print(a, type(a), id(a))
b = a
print(id(b))

輸出如下:

10 <class 'int'> 1677903936
100 <class 'int'> 1677905376
1677905376

在Python中,用一個(gè)變量給另一個(gè)變量賦值的時(shí)候,是將原來的變量中數(shù)據(jù)的地址賦值給另外一個(gè)變量。
賦值完成后,數(shù)據(jù)還是只有一個(gè),只是說數(shù)據(jù)的地址被兩個(gè)變量所保存。

二、運(yùn)算符

ython支持的運(yùn)算符:數(shù)學(xué)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算,位運(yùn)算。

1.數(shù)學(xué)運(yùn)算符

+ - * / %(取余) //(整除) **(次方)冪運(yùn)算

a、 + - * /與小學(xué)數(shù)學(xué)中的加減乘除功能一模一樣

print(1 + 1,)
print(20 - 10,)
print(20 * 10)
print(5 / 2)

計(jì)算結(jié)果為:

2   10  200 2.5

b、 % -求余數(shù),也叫取余、取模

print(5 % 2,)
print(10 % 4,)

計(jì)算結(jié)果為:

1    2

應(yīng)用1:判斷數(shù)字的奇偶性:判斷這個(gè)數(shù)對(duì)2取余的結(jié)果是不是0。

print(20 % 2)
print(23 % 2)

計(jì)算結(jié)果為:

0    1

應(yīng)用2:是否整除,判斷余數(shù)是否為0。
應(yīng)用3:取低位數(shù),獲取一個(gè)數(shù)的個(gè)位數(shù)是什么。

num = 123
print(num % 10)  # 3
print(num % 100)  # 23

c、整除:商只取整數(shù)部分。注意! 負(fù)數(shù)除不盡的時(shí)候向下取整

print(5 // 2)  # 2
print(3.9 // 3)  # 1.0

應(yīng)用:取高位

print(num // 100)

d、** -冪運(yùn)算 x**y ->求x的y次方

print(2 ** 3)  # 次方
print(8 ** (1 / 2))  # 開平方
result = 2 ** 5
print(result)

計(jì)算結(jié)果為:

8   2.8284271247461903   32

2.比較運(yùn)算符

比較運(yùn)算符 < > = != >= <=
1.< > >= <=和數(shù)學(xué)中的一樣
所有的比較運(yùn)算符的運(yùn)算結(jié)果都是布爾值(True False)

print(10 > 20) # False
print(10 < 20) # True

2.== 和!= 是判斷兩個(gè)值是否相等和不相等

print(10 == 10)  #True
print(10 != 10)  #False

3.邏輯運(yùn)算符 and(邏輯與) or(邏輯或) not(邏輯非),運(yùn)算對(duì)象和運(yùn)算結(jié)果都是布爾值.

a、and
運(yùn)算規(guī)則為:兩個(gè)都是True,結(jié)果才是為True,只要有一個(gè)是False,結(jié)果就是False
True and True = True
True and False = False
False and True = False
False and False = False 只要有一個(gè)False就是False
使用場景:需要多個(gè)條件同時(shí)滿足的時(shí)候,就用and,相當(dāng)于生活中的并且

# 獲取獎(jiǎng)學(xué)金的條件:
GPA = 4.5
score = 90
# 績點(diǎn)不低于4 且測(cè)評(píng)分要高于95
if GPA >= 4 and score > 95:
    print("可以獲得獎(jiǎng)學(xué)金")
else:
    print("不能獲得獎(jiǎng)學(xué)金")

判斷一個(gè)數(shù)是否能夠同時(shí)被3和7整除

print('同時(shí)被三和七整除:', num1 // 7 == 0 and num1 // 3 == 0)

b、or
運(yùn)算規(guī)則:兩個(gè)都是false結(jié)果才是false,只要有一個(gè)是True,結(jié)果就是True
True or False == True
True or True == True
False or True == True
False or False == False
應(yīng)用場景:在多個(gè)條件中,需要有一個(gè)條件滿足就行,就使用false,相當(dāng)于生活中的or
績點(diǎn)不低于4或者測(cè)評(píng)分要高于95

print('能否獲取獎(jiǎng)學(xué)金', GPA >= 4 or score >= 95)

c、not
運(yùn)算規(guī)則:True變False False變True
not True -> False
not False -> True
使用場景:對(duì)某一個(gè)條件進(jìn)行否定
如:一個(gè)數(shù)不能同時(shí)被三和七整除的條件

print('不能同時(shí)被三和七整除', not (num1 % 7 == 0 and num1 % 3 == 0))

d、短路操作
and的短路操作:條件1 and 條件2 ,-> and前面的條件如果結(jié)果是False,那么后面的條件語句不會(huì)執(zhí)行,結(jié)果直接是False
or的短路操作:條件1 or 條件2 ,or 前面的條件如果結(jié)果是True,那么后面的條件語句不會(huì)執(zhí)行,結(jié)果直接是True

def func1():
    print('函數(shù)被執(zhí)行了')


True and func1()  # and 遇到True了才會(huì)執(zhí)行第二個(gè)條件
def func2():
    print('or的函數(shù)被執(zhí)行了')


False or func2()  # 只有第一個(gè)條件是False,才會(huì)執(zhí)行第二個(gè)條件
True or func2()  # 第一個(gè)條件是True,整個(gè)算式就是True,第二個(gè)條件不被執(zhí)行

4.賦值運(yùn)算符:= += *= -= /= //= **=

所有的賦值運(yùn)算符左邊必須是變量,組合賦值運(yùn)算符的左邊除了是變量
,這個(gè)變量還要求必須是已經(jīng)聲明過的
1):變量 = 數(shù)據(jù) -> 將右邊的數(shù)據(jù)賦給左邊的變量

a = 10
b = 10 * 2

2):組合的賦值運(yùn)算符
變量 += 值 —-> 變量=變量+值

bb = 100  # 組合賦值運(yùn)算符要求一個(gè)已經(jīng)聲明的變量
bb += 10  # bb=bb+10
print(bb)

i = 5
i **= 5
print(i)

5.運(yùn)算順序

運(yùn)算符優(yōu)先級(jí):
數(shù)學(xué)運(yùn)算符 > 比較運(yùn)算符> 邏輯運(yùn)算符 > 賦值運(yùn)算符(最低)
數(shù)學(xué)運(yùn)算符的優(yōu)先級(jí)和數(shù)學(xué)一樣:*>,/,//,%
如果有括號(hào),先算括號(hào)里面的

三.位運(yùn)算

所有的位運(yùn)算都是針對(duì)數(shù)字的補(bǔ)碼進(jìn)行操作的,特點(diǎn)就是快(效率高)
位運(yùn)算:&(與),|(或),~(取反),^(異或), <<(左移),>>(右移)

1. &

運(yùn)算規(guī)則:補(bǔ)碼每一位上的數(shù)都是1,結(jié)果就是1,如果有一個(gè)是0結(jié)果就是0
應(yīng)用:高效的判斷數(shù)字的奇偶性
所有奇數(shù)的補(bǔ)碼在計(jì)算機(jī)中最后一位都是1
所有偶數(shù)的補(bǔ)碼在計(jì)算機(jī)中最后一位都是0
方法:讓數(shù)字和1進(jìn)行按位與運(yùn)算.000000001 ,判斷結(jié)果是0(偶數(shù))還是1(奇數(shù))

假設(shè)一個(gè)數(shù)字的補(bǔ)碼是1101
另一個(gè)數(shù)字的補(bǔ)碼是0111
1110 & 0111 == 0110
3的補(bǔ)碼:00000011
2的補(bǔ)碼:00000010
00000011 & 00000010 =00000010 == 2

奇偶性判斷:

print(7 & 1, 9 & 1)  # 奇數(shù)與1與,結(jié)果為1
print(8 & 1, 16 & 1)  # 偶數(shù)與1與,結(jié)果為0

2 . |

運(yùn)算規(guī)則:每一位上的數(shù),如果都是0,則結(jié)果都是0,只要有1,結(jié)果都是1

1110 | 0111  -> 1111

3.~

運(yùn)算規(guī)則:將每一個(gè)位上的0變1,1變成0

1101 -> 0010

print(~ -7)   # 11111001(補(bǔ)碼) -> 00000110 == 6

4.^

運(yùn)算規(guī)則:每一位上的數(shù),如果是相同的,則為0,不同則為1

11011 ^ 10010  -> 01001

5.<<

數(shù)字<<N -> 數(shù)字的補(bǔ)碼整體向左移動(dòng)N位 數(shù)字左移一位就是這個(gè)數(shù)字2*N

print(2 << 1)  # 2*2**1=4
print(3 << 2)  # 3*2**2=12

6.>>

數(shù)字>>N 數(shù)字的補(bǔ)碼整體向右移動(dòng)N位 計(jì)算:數(shù)字//2**N

print(4 >> 1)  # 4//2**1==2
print(-8 >> 2)  # -8 // 2**2 == -2

四.分支結(jié)構(gòu)

Python代碼默認(rèn)情況下是從第一行開始從上往下依次執(zhí)行。除注釋以外的每條語句都會(huì)執(zhí)行
分支結(jié)構(gòu):某段代碼是否執(zhí)行看條件(if)

1.if結(jié)構(gòu)

語法:
if 條件語句:
代碼段
其他代碼

說明:
if -關(guān)鍵字,為固定寫法
條件語句 - 任何有結(jié)果的表達(dá)式都可以,例如:數(shù)據(jù),已經(jīng)聲明過的變量,運(yùn)算表達(dá)式(不能是賦值運(yùn)算)
: -固定寫法;一般有冒號(hào)的位置,后面都會(huì)換行加縮進(jìn)
代碼段 - 和if保持一個(gè)縮進(jìn)的一條或者多條語句;需要滿足條件才執(zhí)行的代碼。

執(zhí)行過程:
先判斷條件語句的結(jié)果是否為True(如果條件語句的結(jié)果不是布爾值,就先轉(zhuǎn)換成布爾值再看,只要不是0不是空就全是True)
如果為True 就執(zhí)行代碼段 否則不執(zhí)行

num = 10
if num & 1 == 0:
    print('偶數(shù)')

2.if-else

滿足條件執(zhí)行某個(gè)操作,不滿足條件執(zhí)行另外一個(gè)操作
語法:
if 條件語句:
代碼段1 滿足條件要執(zhí)行的代碼
else:
代碼段2 不滿足條件要執(zhí)行的代碼

執(zhí)行過程:
先判斷條件一句是否為True,如果為True就執(zhí)行代碼段1,否則執(zhí)行代碼段2

age = 20
# 根據(jù)年齡值范圍打印成年或者未成年
if age >= 18:
    print('成年')
else:
    print('未成年')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 變量運(yùn)算符 1.什么是變量&聲明變量 聲明變量就會(huì)申請(qǐng)空間以保存數(shù)據(jù)。 age = 0print('我的年齡是:'...
    KIKIu閱讀 373評(píng)論 0 0
  • 運(yùn)算符是處理數(shù)據(jù)的基本方法,用來從現(xiàn)有的值得到新的值。JavaScript 提供了多種運(yùn)算符,本章逐一介紹這些運(yùn)算...
    徵羽kid閱讀 779評(píng)論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,711評(píng)論 0 5
  • 一.變量 1變量是什么? ?變量申請(qǐng)空間,保存數(shù)據(jù) 2.聲明變量的語法: 變量名=值變量名是程序員自己命名的:要求...
    羽天驛閱讀 185評(píng)論 0 0
  • 今天休息卻一直在奔波,坐下來看到很多戰(zhàn)友已經(jīng)交付了系統(tǒng)。隨意翻撿,看到麗姐的觀影心得。想到上周的一些瑣事,...
    筆墨重陽Alex閱讀 728評(píng)論 2 2

友情鏈接更多精彩內(nèi)容