一、運算符
1.1 算數(shù)運算符
- 算數(shù)運算符是運算符的一種
- 是完成基本的算術(shù)運算使用的符號,用來處理四則運算
a = 10 ,b = 20
?
| 運算符 | 描述 | 示例 |
| + | 加 - 兩個對象相加 | a + b 輸出結(jié)果 30 |
| - | 減 - 得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù) | a - b 輸出結(jié)果 -10 |
| * | 乘 - 兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串 | a * b 輸出結(jié)果 200 |
| / | 除 - x除以y | b / a 輸出結(jié)果 2 |
| % | 取模 - 返回除法的余數(shù) | b % a 輸出結(jié)果 0 |
| ** | 冪 - 返回x的y次冪 | a**b 為10的10次方, 輸出結(jié)果?10000000000 |
| // | 取整除 - 返回商的整數(shù)部分 | 9//2 輸出結(jié)果 4 , 9.0//2.0 輸出結(jié)果 4.0 |
?
1.2 比較運算符
a = 20 ,b = 10
?
| 運算符 | 描述 |
| == | 等于 - 比較對象是否相等 |
| != | 不等于 - 比較兩個對象是否不相等 |
| > | 大于 - 返回x是否大于y |
| < | 小于 - 返回x是否小于y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 |
| >= | 大于等于 - 返回x是否大于等于y |
| <= | 小于等于 - 返回x是否小于等于y |
?
1.3 賦值運算符
?
| 運算符 | 描述 | 示例 |
|
=
|
簡單的賦值運算符
|
c = a + b 將 a + b 的運算結(jié)果賦值為 c
|
|
+=
|
加法賦值運算符
|
c += a 等效于 c = c + a
|
|
-=
|
減法賦值運算符
|
c -= a 等效于 c = c - a
|
|
*=
|
乘法賦值運算符
|
c *= a 等效于 c = c * a
|
|
/=
|
除法賦值運算符
|
c /= a 等效于 c = c / a
|
|
%=
|
取模賦值運算符
|
c %= a 等效于 c = c % a
|
|
**=
|
冪賦值運算符
|
c **= a 等效于 c = c ** a
|
|
//=
|
取整除賦值運算符
|
c //= a 等效于 c = c // a
|
?
1.4 位運算符
a = 60, b = 13
?
| 運算符 | 描述 | 示例 |
|
&
|
按位與運算符:參與運算的兩個值,如果兩個相應(yīng)位都為1,則該位的結(jié)果為1,否則為0
|
(a & b) 輸出結(jié)果 12 ,二進(jìn)制解釋: 0000 1100
|
|
|
|
按位或運算符:只要對應(yīng)的二個二進(jìn)位有一個為1時,結(jié)果位就為1。
|
(a | b) 輸出結(jié)果 61 ,二進(jìn)制解釋: 0011 1101
|
|
^
|
按位異或運算符:當(dāng)兩對應(yīng)的二進(jìn)位相異時,結(jié)果為1
|
(a ^ b) 輸出結(jié)果 49 ,二進(jìn)制解釋: 0011 0001
|
|
~
|
按位取反運算符:對數(shù)據(jù)的每個二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?
|
(~a ) 輸出結(jié)果 -61 ,二進(jìn)制解釋: 1100 0011, 在一個有符號二進(jìn)制數(shù)的補碼形式。
|
|
<<??
|
左移動運算符:運算數(shù)的各二進(jìn)位全部左移若干位,由"<<"右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。左移一位相當(dāng)于乘以2
|
a << 2 輸出結(jié)果 240 ,二進(jìn)制解釋: 1111 0000
|
|
>>
|
右移動運算符:把">>"左邊的運算數(shù)的各二進(jìn)位全部右移若干位,">>"右邊的數(shù)指定移動的位數(shù)。右移一位相當(dāng)于除以2
|
a >> 2 輸出結(jié)果 15 ,二進(jìn)制解釋: 0000 1111
|
?
1.5 邏輯運算符
a = 10, b = 20
?
|
運算符
|
邏輯表達(dá)式
|
描述
|
示例
|
|
and
|
x and y
|
布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。
|
(a and b) 返回 20。
|
|
or
|
x or y
|
布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。
|
(a or b) 返回 10。
|
|
not
|
not x
|
布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。
|
not(a and b) 返回 False
|
?
?如果是邏輯中的數(shù)值運算時,需要注意:
- x or y時,如果x為非0,則值為x,否則為y
- x and y時,運算結(jié)果與or相反
?
1.6 成員運算符
| 運算符 | 描述 | 示例 |
|
in
|
如果在指定的序列中找到值返回 True,否則返回 False。
|
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
|
|
not in
|
如果在指定的序列中沒有找到值返回 True,否則返回 False。
|
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
|
?
1.7 身份運算符
|
運算符
|
描述
|
示例 |
|
is
|
is是判斷兩個標(biāo)識符是不是引用自一個對象
|
x is y, 如果 id(x) 等于 id(y) ,?is?返回結(jié)果 True
|
|
is not
|
is not是判斷兩個標(biāo)識符是不是引用自不同對象
|
x is not y, 如果 id(x) 不等于 id(y).?is not?返回結(jié)果 False
|
?
?ps:身份運算符用于比較兩個對象的存儲單元
is 和 == 的區(qū)別
- ==?判斷兩邊的值是否相等
- is?判斷內(nèi)存地址是否相等
?
1.8 運算符的優(yōu)先級
?
|
運算符
|
描述
|
|
**
|
指數(shù)?
(
最高優(yōu)先級
)
|
|
~ + -
|
按位翻轉(zhuǎn)
,?
一元加號和減號?
(
最后兩個的方法名為?
+@?
和?
-@)
|
|
* / % //
|
乘,除,取模和取整除
|
|
+ -
|
加法減法
|
|
>> <<
|
右移,左移運算符
|
|
&
|
位?
'AND'
|
|
^ |
|
位運算符
|
|
<= < > >=
|
比較運算符
|
|
<> == !=
|
等于運算符
|
|
= %= /= //= -= += *= **=
|
賦值運算符
|
|
is is not
|
身份運算符
|
|
in not in
|
成員運算符
|
|
not or and
|
邏輯運算符
|
二、流程控制
2.1 條件語句
條件語句在開發(fā)中主要用于進(jìn)行 邏輯判斷
#
格式1
if
條件:
代碼塊
#
格式2
if
條件:
代碼塊
else
:
代碼塊
#
格式3
if
條件:
代碼塊
elif
條件:
代碼塊
...
else
:
代碼塊
運行流程圖:
#
!/usr/bin/env python
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/5/31
"""
"""
需求
1.輸入用戶年齡
2.判斷是否滿 18 歲 (>=)
3.如果滿 18 歲,允許進(jìn)網(wǎng)吧嗨皮
4.如果未滿 18 歲,提示回家寫作業(yè)
"""
#
1. 輸入用戶年齡
age = int(input(
"
請輸入年齡:
"
))
#
2. 判斷是否滿 18 歲
if
age >= 18
:
print
(
"
可以進(jìn)網(wǎng)吧嗨皮……
"
)
else
:
print
(
"
你還沒長大,應(yīng)該回家寫作業(yè)!
"
)
#
!/usr/bin/env python
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/5/31
"""
"""
需求
1.定義布爾型變量 has_ticket 表示是否有車票
2.定義整型變量 knife_length 表示刀的長度,單位:厘米
3.首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
4.安檢時,需要檢查刀的長度,判斷是否超過 20 厘米
4.1如果超過 20 厘米,提示刀的長度,不允許上車
4.2如果不超過 20 厘米,安檢通過
5.如果沒有車票,不允許進(jìn)門
"""
#
定義布爾型變量 has_ticket 表示是否有車票
has_ticket =
True
#
定義整數(shù)型變量 knife_length 表示刀的長度,單位:厘米
knife_length = 20
#
首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
if
has_ticket:
print
(
"
有車票,可以開始安檢...
"
)
#
安檢時,需要檢查刀的長度,判斷是否超過 20 厘米
#
如果超過 20 厘米,提示刀的長度,不允許上車
if
knife_length >= 20
:
print
(
"
不允許攜帶 %d 厘米長的刀上車
"
%
knife_length)
#
如果不超過 20 厘米,安檢通過
else
:
print
(
"
安檢通過,祝您旅途愉快……
"
)
#
如果沒有車票,不允許進(jìn)門
else
:
print
(
"
大哥,您要先買票啊
"
)
2.2 循環(huán)語句
循環(huán)的作用:
- 循環(huán)的作用就是讓 指定的代碼 重復(fù)的執(zhí)行
?2.2.1 while循環(huán)
#
格式1
while
條件:
循環(huán)體
#
格式2
while
條件:
代碼塊
else
:
當(dāng)條件為假的時候執(zhí)行
count =
0
while
count < 5
:
print
(count,
"
is less than 5
"
)
count
= count + 1
else
:
print
(count,
"
is not less than 5
"
)
#
!/usr/bin/env python3
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/9/10
"""
print_num
= int(input(
"
which loop do you want it printed out?
"
))
count
=
0
while
count < 100
:
if
count ==
print_num:
print
(
"
There you got the number:
"
, count)
choice
= input(
"
Do you want to continue the loop?(y/n)
"
)
if
choice ==
"
n
"
:
break
else
:
while
print_num <=
count:
print_num
= input(
"
Which loop do you want it to be printed out
"
)
print
(
"
已經(jīng)過了
"
)
else
:
print
(
"
Loop:
"
, count)
count
+= 1
else
:
print
(
"
Loop:
"
, count)
#
!/usr/bin/env python
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/5/31
"""
while
True:
#
該條件永遠(yuǎn)為true,循環(huán)將無限執(zhí)行下去
num = input(
"
Enter a number :
"
)
print
(
"
You entered:
"
, num)
#
該語句永遠(yuǎn)不會被執(zhí)行到
print
(
"
good bye
"
)
2.2.2 for循環(huán)
for
iterating_var
in
sequence:
statements(s)
#
!/usr/bin/env python
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/5/31
"""
for
letter
in
'
Python
'
:
#
第一個實例
print
(
'
當(dāng)前字母 :
'
, letter)
fruits
= [
'
banana
'
,
'
apple
'
,
'
mango
'
]
for
fruit
in
fruits:
#
第二個實例
print
(
'
當(dāng)前水果 :
'
, fruit)
print
(
"
Good bye!
"
)
#
!/usr/bin/env python
#
-*-coding:utf-8-*-
"""
@author:fyh
@time:2019/5/31
"""
for
i
in
range(1, 20
):
print
(i)
else
:
print
(
"
hahah
"
)
2.2.3 break和continue
break 和 continue 是專門在循環(huán)中使用的關(guān)鍵字
- break 某一條件滿足時,不再執(zhí)行循環(huán)體中后續(xù)重復(fù)的代碼,并退出循環(huán)
- continue 某一條件滿足時,不再執(zhí)行本次循環(huán)體中后續(xù)重復(fù)的代碼,但進(jìn)入下一次循環(huán)判斷
print_num = input(
"
which loop do you want it printed out?
"
)
count
=
0
while
count < 10000000
:
if
count ==
print_num:
print
(
"
There you got the number:
"
, count)
choice
= input(
"
Do you want to continue the loop?(y/n)
"
)
if
choice ==
"
n
"
:
break
else
:
while
print_num <=
count:
print_num
= input(
"
Which loop do you want it to be printed out
"
)
print
(
"
已經(jīng)過了
"
)
else
:
print
(
"
Loop:
"
, count)
count
+= 1
else
:
print
(
"
Loop:
"
, count)
#
猜數(shù)字游戲,3次機會
import
random
real_num
= random.randrange(10
)
for
i
in
range(3
):
guess_num
= input(
"
please input a number:
"
).strip()
#
去除空格和換行
if
len(guess_num) ==
0:
continue
if
guess_num.isdigit():
guess_num
=
int(guess_num)
else
:
print
(
"
please input a really num:
"
)
continue
if
real_num >
guess_num:
print
(
"
Wrong! you should input a bigger
"
)
elif
real_num <
guess_num:
print
(
"
Wrong! you should input a smaller
"
)
else
:
print
(
"
Configuration! you go it!
"
)
break
else
:
#
在for循環(huán)正常執(zhí)行完之后執(zhí)行后面的else語句
print
(
"
The real num is
"
, real_num)
?2.3 if實現(xiàn)三目運算符
1
"""
2
格式:
3
a if a > b else b
4
"""
5
6
#
求a和b兩個數(shù)字中的較大值.
7
a = 10
8
b = 20
9
#
使用三目運算符求較大值
10
max = a
if
a > b
else
b
11
print
(
"
較大值為:%d
"
% max)
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

