筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 筆者原創,文章歡迎轉載,轉載請標明出處。如果喜歡請點贊+關注,感謝支持!
最近的一篇《避雷!零基礎菜鳥如何快速上手Python》文章->傳送門,得到了很多朋友的點贊和收藏,那麼這一篇《關於運算符和字符串那些不爲人知的事》也希望能夠幫助到大家。本講內容的思維導圖在文章的最後面,需要的朋友記得保存。
目錄
關於運算符和字符串那些不爲人知的事
一、上一篇內容回顧
- Pycharm使用的重點:千萬不要選virtualenv,避開雷區
虛擬環境會導致terminal前面有個括號,意味着進入到了虛擬環境,先不涉及虛擬環境。
提問:那如果不確定是否選擇了virtualenv虛擬環境,我們怎麼去驗證是虛擬環境還是系統環境呢?
步驟如下:
settings
Project
Project Interpreter
帶括號是虛擬環境
不帶括號是系統環境
現階段暫時不要涉及到虛擬環境,關於虛擬環境的用法後期會再詳細講解。
1.1 回顧標識符
變量命名規範
- 1.字母數字下劃線
- 2.不能數字開頭
- 3.不要使用關鍵字
錯誤時會出現紅色波浪線
- 4.見名知意(重要,需要多練習,通過名字能知道後面數據代表什麼。這個真的很重要!)
1.2 註釋
#號 單行註釋
三引號 """
多行註釋
"""
ctrl + / 註釋快捷操作
1.3 簡單的內置函數
print() 打印
input() 獲取用戶輸入
1.4 數據類型
int整形
float浮點數
str字符串
bool布爾型
查看是什麼數據類型用type()函數來確認
#type()函數用法
str_abc = 'abc'
print(type(str_abc))
print(str_abc)
<class 'str'>
abc
1.5 數據類型轉換
數據類型後面加個括號就是數據類型的轉換,不是所有類型之間都可以相互轉換。
比如:字符串轉換爲整形——不一定
可以轉換:
#數據類型轉換
str_demo = '123'
print(int(str_demo))
print(type(str_demo))
print(str_demo)
123
<class 'str'>
123
數字就可以完成轉換,而不可以轉換的情況:
#數據類型轉換
str_demo = 'abc'
print(int(str_demo))
print(type(str_demo))
print(str_demo)
Traceback (most recent call last):
File "E:/MyLife/demo.py", line 29, in <module> print(int(str_demo))
ValueError: invalid literal for int() with base 10: 'abc'
- 數據轉換重點內容
布爾轉換是重點
以下情況bool轉化爲False,意思爲空或者0:
- bool(1) True
- bool(0) False
- bool(-1) True
需要注意的是 bool(" ") True 空格是有意義的,這個是python的坑:
#布爾數據類型轉換
print(bool(''))
print(bool(' '))
False
True
bool("") False 沒空格是False!
二、 運算符
運算符就是算術運算符,包括加減乘數:
- +加法
- -減法
- *乘法
- /除法
需要注意是除法,得到的是浮點數。
小技巧——這裏有個pycharm的小技巧,打紅色斷點後,右鍵點debug,可以查看數據類型:
爲什麼除法得到的不是整數?
因爲除法會遇到除不盡的情況,所以使用了除法數據類型會轉化爲浮點數。
需要注意:被除數不能爲0(小學數學知識點,別問我爲什麼= =)
冪運算
** 次方運算
整除
// 15 // 2 取整數部分 等於7
重點:取餘數,專有名詞爲模運算
h = 15 % 2
模運算經常用來進行奇數偶數判斷:
x%2的值是0,說明x是偶數
x%2的值是1,說明x是奇數
a = input('請輸入數字:')
print(int(a) % 2)
如果得到的數字是0,就是偶數,1就是奇數
2.1 賦值運算
a = 6 將6賦值給變量a
a += 6 #相當於a = a + 6 a = 12
a -= 4 #相當於a = a - 4 a = 8
a *= 2 #相當於 a = a * 2
2.2 比較運算
布爾類型 == >= <= != > <
== 等於的意思
= 一個等號是賦值的意思
a = 1 == 2
優先級先算==,再算賦值,如果不清楚請加括號!
得到的結果是布爾類型,正確是True,錯誤是False。
2.3 邏輯運算
and 兩種運算,並且
1 > 2 and 3 < 4 錯的,邏輯運算符可以加很多
對於and而言,一錯再錯,一直錯
or 或者 錯一點沒關係,不全錯就行
1 > 2 or 3 < 4
not 非,槓精,作對的
not 1 > 2,True
實戰操作
print(not 2 != 3 and 6 < 7 or 5 == 4)
2.4 運算符優先級
優先級最高的是加括號
比較運算得到的結果是布爾類型
邏輯運算得到的結果也是布爾類型
在if判斷中會用到布爾類型
三、字符串
3.1 什麼是字符串
我們在python中以引號括起來的數據類型就是字符串。
只要在引號裏面就是字符串,前面可以加個變量:
a = "qwertyuiopasdfghjkl;'zxcvbnm,./'"
引號可以是單引號,雙引號,三引號,沒有任何區別,
三引號可以表示多行字符串:
a = """
這是一個多行註釋
巴拉巴拉小魔仙
"""
單引號和雙引號時不能多行註釋,只能表示一行。
三引號可以是三個單引號,也可以是三個雙引號。
三引號什麼時候是註釋什麼時候是字符串?
- 用到的時候就是字符串,不用就是註釋
- 比如用到print(),變量等等
3.2 成員運算
#成員運算
names = "jack"
print ("jack" in names)
True
返回得到布爾類型:true
in 真的 not in 假的
3.3 成員操作
字符串也是可以用+號的,表示字符串拼接起來:
family_name = "Jack"
last_name = "Meng"
print(family_name + last_name)
True
JackMeng
而字符串 * 數字,表示重複多少遍:
family_name = "Jack"
last_name = "Meng"
print(family_name + last_name)
print(last_name * 5)
True
JackMeng
MengMengMengMengMeng
注意:字符串不能乘字符串,只能乘數字:
family_name = "Jack"
last_name = "Meng"
print(last_name * family_name)
Traceback (most recent call last):
File "E:/MyLife/demo2.py", line 13, in <module>
print(last_name * family_name)
TypeError: can't multiply sequence by non-int of type 'str'
3.4 字符串索引
重點:表示獲取字符串當中的某一個元素
字符串的索引:索引(字符串裏面每一個字符都有下標(索引),並且是從0開始)
正序:從頭開始數
反序:從尾開始數
字符串怎麼取值:根據索引取值
取值公式:字符串名[索引值]
索引表示方法:name[索引號]
在Python中,索引從0開始。-1的索引代表最後一位。
3.5 獲取字符串的長度 len()
需要注意的是,超出索引範圍,會報錯!!
name = "1"
name_len = len(name)
print(name[name_len - 3])
Traceback (most recent call last):
File "E:/MyLifedemo2.py", line 10, in <module>
print(name[name_len - 3])
IndexError: string index out of range
3.6 切片
定義:切片操作可以從一個字符串中獲取子字符串(字符串的一部分),使用起始偏移量
tart、終止偏移量end、可選步長step定義一個分片
格式:name[切的起始點:切的終點]
特點:取頭不取尾
- [:]提取開頭到結尾
- [start:]從start提取到結尾
- [:end]從開頭提取到end-1
- [start:end]從start提取到end-1
切片:獲取字符串的多個元素
注意:這裏有個坑,切片屬於顧頭不固腚那種,,取左不取右,切的終點+1,也就是右邊的要 +1。
3.7 步長
num = "12345678987654321"
print(num[1:5:2]) #1 + 2 + 2
print(num[2:8:3])
24
36
步長:step獲取第一次以後+多少個索引去獲取第2個索引
方向:正數是正方向,負數是負方向:
num = "123456789abcdefg"
print(num[::-1])
gfedcba987654321
切片中超出範圍是不會報錯的:
num = "123456789abcdefg"
print(num[1:10000000000])
23456789abcdefg
在切片道中,超出範圍是不報錯的,是表示取完的意思。
經常有Python的面試題會用到這裏,比如如何倒序:
print(name[::-1])
總結:
字符串的操作
表示方法,單引號 雙引號 三引號
字符串的拼接
加號+和乘號*
加號表示拼接,乘號表示重複次數
in/not in 成員運算
len()函數 獲取字符串的長度
索引 獲取後一個元素,以0開始,而不是1開始,超出索引範圍會出錯IndexError
負數 從-1開始 從右邊取
切片 獲取多個元素,取左不取右,超出範圍 不報錯,表示方法:name[start:step]
step爲負數表示倒序
等等。下面奉上知識點的思維導圖:
以上內容便是《每天十分鐘掌握Python——運算符和字符串》的所有內容,更多python學習請繼續關注我的博客——風起怨江南,目前《Python學習》專題正在不斷更新,其他學習模塊正在創作中。原創不易,轉載請註明哦。如果喜歡請點贊和關注,謝謝大家的支持!
獲得更多免費的學習資料請添加微信公衆號——風起怨江南,謝謝大家的關注和支持!