python變量和運(yùn)算符及字符串

一、變量

1、聲明變量(定義變量)

語(yǔ)法:變量名 = 值
說(shuō)明:
變量名 - 要求:標(biāo)識(shí)符,不能使關(guān)鍵字
規(guī)范:
a.遵守PEP8命名規(guī)范(名字的所有字母小寫(xiě),有多個(gè)單詞組成,單詞之間用_隔開(kāi))
b.見(jiàn)名知意(看見(jiàn)名字就知道變量中存的是什么數(shù)據(jù))
student_name
"="賦值符號(hào),將=右邊的賦值給左邊的變量
值 - 可以是任何有結(jié)果的表達(dá)式,例如:100,變量,10+30,調(diào)用函數(shù)表達(dá)式
例如:

age = 18
num = 16574
num1 = num2 = num3 = 19 #同時(shí)聲明多個(gè)變量,并賦一樣的值
x,y = 10,30 #同時(shí)聲明多個(gè)變量,并賦不一樣的值,變量的個(gè)數(shù)和值的個(gè)數(shù)要保持一致
num4 = 100
num4 = 200 #給同一變量賦值,后賦的值會(huì)覆蓋先賦的值
num4 = "abc" #同一變量可以存儲(chǔ)不同類(lèi)型的值
print(num4)

結(jié)果如下:

image.png

注:此聲明變量為假的聲明


2.聲明變量和給變量賦值的本質(zhì)

結(jié)論:python中所有的變量,存的都是數(shù)據(jù)在內(nèi)存中的地址,內(nèi)存地址大小一樣
用一個(gè)變量給另一個(gè)變量賦值,實(shí)質(zhì)是將變量中的地址賦給另一個(gè)變量
使用變量的時(shí)候,是使用的變量中地址所對(duì)應(yīng)的值


3.變量的三要素:值、地址和類(lèi)型

  • 值:變量中存的地址對(duì)應(yīng)的值
  • 地址:變量中存儲(chǔ)的地址(id)
  • 類(lèi)型:變量中存的地址對(duì)應(yīng)的值的類(lèi)型
name = "小米"
name1 = name
print(name)
print(id(name),id(name1)) #id(變量) - 獲取變量中存的地址
print(type(name)) #獲取變量地址中的值的類(lèi)型

結(jié)果如下:

image.png

二、運(yùn)算符

  • python中的運(yùn)算符:數(shù)學(xué)運(yùn)算符,比較運(yùn)算符,邏輯運(yùn)算符,賦值運(yùn)算符,位運(yùn)算符

1.數(shù)學(xué)運(yùn)算符:+,-,,/,%,//,*

+:加法運(yùn)算
-:減法運(yùn)算
*:乘法運(yùn)算
/:除法運(yùn)算

print(10+20)
print(10-20)
print(10*20)
print(10/20)

%:取余
應(yīng)用1:獲取一個(gè)整數(shù)的最低的以為或者幾位數(shù)的值 num%(10^n)
應(yīng)用2:判斷一個(gè)是是否能夠被另外一個(gè)數(shù)整除 num1 % num2

print(10 % 3)
print(10 % 2)
# 獲取一個(gè)數(shù)的個(gè)數(shù)
num = 36523
print(num % 10)  # 3
print(num % 100) # 23

//:整除取整
**:冪運(yùn)算 print(2 ** 16) x^y print(4 ** 0.5) 開(kāi)方


2.比較運(yùn)算符:>, <, ==, !=, >=, <=

  • 所有的比較運(yùn)算符的運(yùn)算結(jié)果都是布爾值
#值1 > 值2 : 值1是否大于值2
print(100 > 10)  # True
print(10 > 100)  # False
print(10 > 10)   # False

# 值1 < 值2: 值1是否小于值2
print(100 < 10)  # False

# 值1==值2: 值1是否等于值2
print(10 == 100)    # False
print(10 == 10)     # True
num = 10
print(num == 10)  # True
# 值1!=值2: 值1是否不等于值2
print(10!=100)   # True
print(10!=10)    # False

3.邏輯運(yùn)算符: and, or, not

  • 邏輯運(yùn)算符的運(yùn)算對(duì)象是布爾值,運(yùn)算符結(jié)果也是布爾值

a. and(邏輯與運(yùn)算):

值1 and 值2:如果值1和值2的都為T(mén)rue,結(jié)果才是True;只要有一個(gè)False結(jié)果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False

邏輯與運(yùn)算相當(dāng)于生活中的'并且';當(dāng)需要多個(gè)條件同時(shí)滿足,就使用and將多個(gè)條件連接在一起

grade = 90   # 成績(jī)
score = 98   # 分?jǐn)?shù)
# 例子:要求成績(jī)大于90并且表現(xiàn)分大于95,才能獲得獎(jiǎng)學(xué)金
print('是否獲取獎(jiǎng)學(xué)金:', grade > 90 and score > 95)

b.or(邏輯或運(yùn)算)

值1 or 值2:如果值1和值2中有一個(gè)是True,就過(guò)就是True。兩個(gè)都是False,即如果才是False
True or True -> True
True or False -> True
False or True -> True
False or False -> False

邏輯或運(yùn)算,相當(dāng)于生活中的'或者';當(dāng)需要多個(gè)條件中至少有一個(gè)條件滿足,就是用or將多個(gè)條件連接在一起

grade = 90   # 成績(jī)
score = 98   # 分?jǐn)?shù)
# 例子:要求成績(jī)大于90或者表現(xiàn)分大于95,就能獲得獎(jiǎng)學(xué)金
print(grade > 90 or score > 95)

c.not(邏輯非運(yùn)算)

  • not 值:如果值是True,結(jié)果就是False;如果值是False,結(jié)果就是True

not True -> False
not False -> True

not用來(lái)對(duì)某個(gè)條件進(jìn)行否定

age = 17
# 是否能夠進(jìn)入網(wǎng)吧的條件: 年齡不小于18
print('是否能進(jìn)入網(wǎng)吧:', not age < 18)
print('是否能進(jìn)入網(wǎng)吧:', age >= 18)

結(jié)果如下:

image.png

4.賦值運(yùn)算符

  • 賦值運(yùn)算符:=,+=, -=, *=, /=, %=, //=, **=
  • 所有賦值符的左邊必須是變量; 組合的賦值運(yùn)算符的左邊的變量必須已經(jīng)賦值;
  • 所有賦值運(yùn)算符最終的會(huì)進(jìn)行賦值操作
 #a. = - 直接將右邊的結(jié)果賦給左邊的變量
num = 100
# b. +=, -=, *=, /=,  %=,  //=, **=
"""
變量 += 值 --> 相當(dāng)于 變量 = 變量 + 值
變量 -= 值 --> 相當(dāng)于 變量 = 變量 - 值
變量 *= 值 --> 相當(dāng)于 變量 = 變量 * 值
...
"""
num1 = 1
num1 += 10   # num1 = num1+10 = 1+10
print(num1)

num1 *= 2    # num1 = num1*2 = 11*2
print(num1)

num1 %= 2
print(num1)

5.運(yùn)算符的優(yōu)先級(jí)

數(shù)學(xué)運(yùn)算符 > 比較運(yùn)算符 > 邏輯運(yùn)算符 > 賦值運(yùn)算符
優(yōu)先級(jí)高的先算。如果有括號(hào),先算括號(hào)里面的

數(shù)學(xué)運(yùn)算符中: ** > *, /, %, // > +, -


6.位運(yùn)算

  • 位運(yùn)算:&(按位與),|(按位或),^(按位異或), ~(按位取反),<<(左移), >>(右移)
  • 位運(yùn)算是針對(duì)二進(jìn)制中每一位進(jìn)行的相關(guān)操作
&(按位與)

數(shù)字1 & 數(shù)字2 -> 二進(jìn)制的每一位進(jìn)行與運(yùn)算,運(yùn)算的時(shí)候如果都為1結(jié)果就是1,否則就是0
1 & 1 - 1
1 & 0 - 0
0 & 1 - 0
0 & 0 - 0

與的特點(diǎn):一位上的數(shù)如果和1與,就會(huì)保留這一位上的數(shù)。如果和0與,就會(huì)將這一位置0

11010 & 00111 = 00010

與運(yùn)算的應(yīng)用:判斷一個(gè)數(shù)的奇偶性(最優(yōu)解答)
將數(shù)字和1與,如果結(jié)果是0,就說(shuō)明這個(gè)數(shù)是偶數(shù);如果結(jié)果是1,說(shuō)明這個(gè)數(shù)是奇數(shù)
例如:

print(3 & 2)

結(jié)果如下:

image.png

解析:3(原/補(bǔ)) = 0011
2(原/補(bǔ)) = 0010
3 & 2 = 0011 & 0010 = 0010(補(bǔ)) = 2

|(按位或)

數(shù)字1 | 數(shù)字2 - 如果有一位是1結(jié)果就是1,兩個(gè)都為0結(jié)果才是0
1 | 1 - 1
1 | 0 - 1
0 | 1 - 1
0 | 0 - 0

^(按位異或)

數(shù)字1 ^ 數(shù)字2 - 每一位如果相同就為0,不同為1
1 ^ 1 - 0
1 ^ 0 - 1
0 ^ 1 - 1
0 ^ 0 - 0

例如:11 ^ 2
01011 ^ 00010 = 01001(補(bǔ)) = 9

~(按位取反)

~ 數(shù)字 - 將每一位取反(0變成1,1變成0)

~1 = 0
~0 = 1

例如:~2
010 -> 101(補(bǔ)) = 100(反) = 111

<<(左移)

數(shù)字1 << n(位數(shù)) - 左移指定的位數(shù)就是在二進(jìn)制的后面加指定個(gè)數(shù)個(gè)0
相當(dāng)于:數(shù)字1 * (2**n)

例如:10 << 1
01010 << 1 = 010100 = 20
01010 << 2 = 0101000 = 2^5 + 2^3 = 32 + 8 = 40
-10 << 1
11010 -> 10110(補(bǔ)碼) << 1 = 101100(補(bǔ))= 101011(反)=110100 = -20

>>(右移)

數(shù)字1 >> n(位數(shù)) 將數(shù)字的二進(jìn)制位向右移動(dòng)指定的位數(shù)(將低位刪除指定的位數(shù))
相當(dāng)于: 數(shù)字1 // (2**n)

例如:20>>2
010100 >> 2 = 0101 = 5
0101 >> 1 = 010 = 2
010 >> 1 = 01 = 1
01 >> 1 = 0 = 0


三、字符串

1.什么是字符串(str)

  • 字符串是python中一種常用的有序但是不可變的容器類(lèi)的數(shù)據(jù)類(lèi)型,可以同時(shí)存儲(chǔ)多個(gè)字符。屬于序列
  • 字面量:使用單引號(hào)或者雙引號(hào)將任意字符括起來(lái),就是字符串常量
  • 字符:指的就是字符串中的每一個(gè)單元。注意,python中只有字符的概念沒(méi)有字符類(lèi)型

2.字符串中的內(nèi)容

a.普通字符:包含數(shù)字字符、字母、普通符號(hào):+,-(),%#@等、中文、韓文、日語(yǔ)等

如:'123', 'hsja', '*&sd23順'

b.轉(zhuǎn)義字符:通過(guò)反斜杠將一些字符轉(zhuǎn)換成有特殊功能或者特殊意義的字符

\n - 換行
\t - 制表符
' - 表示一個(gè)單引號(hào)
" - 表示一個(gè)雙引號(hào)
\ - 表示一個(gè)\

注意:一個(gè)轉(zhuǎn)義字符代表一個(gè)字符
例如:

print('\tabc\n123')
print('abc\'123')
print("ab\"c'123")
print('abc\\n123')

結(jié)果如下:

image.png
c.阻止轉(zhuǎn)義: 在字符串的最前面加r/R,可以阻止轉(zhuǎn)義字符轉(zhuǎn)義

例如:

print(r'abc\n12\\3')
print(r'\b')

結(jié)果如下:

image.png
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,549評(píng)論 0 13
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 6,031評(píng)論 2 16
  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,562評(píng)論 1 44
  • 今天又一次匆匆忙忙來(lái)到廈門(mén)送產(chǎn)品,每次都沒(méi)有靜靜的停下來(lái)好好看看這個(gè)城市,每次來(lái)我都感受到截然不同于惠州的生活氣息...
    Troy連閱讀 169評(píng)論 0 0
  • 豬們聚攏在豬圈的門(mén)口,就如同平時(shí)午飯那個(gè)點(diǎn)一樣,他們又一次抖了抖身上的贅肉,那種肚皮上油脂的震蕩感明...
    葉靈龍閱讀 376評(píng)論 2 2

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