1.幾個概念
1.1 表達式
表達式,是由數字、算術、數字分組符號(括號)、自由變量和約束變量等以能求得數值的有意義的排列方法所得的組合
表達式就是一個類似於數學公式的東西
比如:1 +1 2* 2
1.2語句
一個語法上自成體系的單位,它由一個詞或句法上有關聯的一組詞構成英語
在程序當中的語句一般使用是用來完成各種功能
例如: print() input() for xxx in yy :a = 5
1.3 程序
程序就是由一條一條的語句和一條一條的表達式組成
例如:考駕照 科目一——>科目二——>科目三——>科目四
1.4 函數
函數就是一種程序,專門用來完成特定功能。
函數長得形如:XXX()
函數的分類:
1.4.1 內建函數 由Python解釋器提供的函數,可以在Python中直接調用
1.4.2 自定義函數 由程序員自主創建的函數 XXX()
打開Python官網Welcome to Python.org——>Documentation——>Python 3.x Docs——>Library Reference——>Built-in Functions(內置函數)
()代表的就是函數裏面要傳遞的參數
*函數中可以沒有參數,也可以傳遞多個參數,多個參數需要用逗號隔開
print('Hello World','鋼鐵俠',111)
>>>Hello World 鋼鐵俠 111
返回值 就是函數返回的結果 不是所有的函數都有返回值*
2.標識符
2.1 Python語言的組成部分
1.關鍵字 2.註釋 3.標識符 4.變量和數值 5.運算符 6.語句 7.函數 8.序列
2.2關鍵字
就是Python的一些具有特殊功能的關鍵字
打開Python官網Welcome to Python.org——>Documentation——>Python 3.x Docs——>Language Reference——>identifiers and keyword(標識符和關鍵字)——>2.3.1 Keyword
import keyword
print(keyword.kwlist)
2.3 標識符
開發人員在開發當中自己定義的一些符合和名稱 標識符一般定義 如 變量名、函數名…
組成 由26個英文字母大小寫 數據0-9 符號_ $ @
2.3.1 標識符的規則
2.3.1.1標識符中可以包含字母、數字、_,但是不能使用數字作爲開頭
例如:name1 name_1 _name1 1name(不行)
2.3.1.2 Python當中不能使用關鍵字和保留字作爲標識符
例如: for = 1(不行)
不建議Python的函數作爲標識符作爲標識符來命名
2.4 命名方式
小駝峯命名法: 第一個單詞小寫字母開始,第二個單詞首字母大寫
例如:myName aDog
大駝峯命名法:每一單詞的首字母採用大寫字母
例如:FirstName LastName
下劃線命名法 _ : 例如 get_url buffer_size
最好要做到見名識意
3.數據類型
數據類型指的就是變量 的值的類型,也就是我們可以爲變量賦哪些值
Java
數值
整數 所有整數 a = 1 b = 100 c = 999 int
c = 123_456_789(如果數值比較大,就可以用下劃線來分隔)
小數 所有小數 a = 1.2 b = 6.66
s = 0.1 + 0.2
print(s)
>>>0.30000000000000004
0.30000000000000004 = 0.3
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)
>>>0.3
4.布爾和空值
4.1 布爾 只有2個值True False 邏輯判斷
a = True
a = False
print(a)
>>>False
a = False
a = True
print(a)
>>>True
4.2 布爾值其實也屬於整型 True相當於1 False相當於0
None 只有一個數值 也就是空值
>>> 1 + True
2
>>> 1 + False
1
>>> a = None
>>> print(a)
None
5.字符串(轉義字符)
5.1 什麼是字符串?
字符串就是由數字、字母、下劃線組成的一串字符
>>> "I don't like money,I only love you!"
"I don't like money,I only love you!"
>>> 'Jerry love meizi'
'Jerry love meizi'
總結:用一對單引號或者一對雙引號包裹的內容就是字符串 str
字符串的類型:
>>> 520
520
>>> type(520)
<class 'int'>
>>> '520'
'520'
>>> type('520')
<class 'str'>
注意:單引號和雙引號不能混合使用,相同引號之間不能嵌套
>>> a = 'abc"
SyntaxError: EOL while scanning string literal
>>> 'What's up'
SyntaxError: invalid syntax
>>> "What's up!"
"What's up!"
轉義字符:
’ 表示 ’
" 表示”
>>> 'What\' up'
"What' up"
\t 表示製表符
>>> s = '窈窕淑女,\t君子好逑'
>>> print(s)
窈窕淑女, 君子好逑
\n 表示換行符
>>> s ='窈窕淑女,\n君子好逑'
>>> print(s)
窈窕淑女,
君子好逑
\ \ : 表示反斜槓
r 表示原始字符串
>>> dos = "c:\news"
>>> print(dos)
c:
ews
>>> dos = 'c;\\news'
>>> print(dos)
c;\news
>>> dos = r'c:\news'
>>> print(dos)
c:\news
6.字符串(格式化字符串)
6.1長字符串
我們可以使用三重引號表示一個長字符串" " "
好處:三重引號可以換行,並且保留字符串中的格式
s = '''關關雎鳩,
在河之洲,
窈窕淑女,
君子好逑。'''
print(s)
>>>關關雎鳩,
在河之洲,
窈窕淑女,
君子好逑。
6.2 格式化字符串
字符串不能和其他類型進行加法運算,如果做了會出現異常。
1.拼串
2.參數來格式化信息
3.佔位符的方式 :%s 字符串 %d 整數 %f 浮點數
4.格式化
>>> 6 + 6
12
>>> "6" + "6"
'66'
>>> 'Jerry'+'y'
'Jerryy'
>>> 6 + '6'
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
6 + '6'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> 6 + int("6")
12
6.2.1 拼串
s = 'Hello'
print('s = '+s)
>>>s = Hello
通常用逗號隔開,來表示拼串
s = 'Hello'
print('s = ',s)
>>>s = Hello
print('aaa','bbb','ccc')
>>>aaa bbb ccc
6.2.2 用參數來格式化信息
>>> 'I love %s'
'I love %s'
>>> 'I love %s'%'Jerry'
'I love Jerry'
>>> 'I love %s'%'Study'
'I love Study'
6.2.3 佔位符的方式: %s 字符串 %d 整數 %f 浮點數
%s字符串:
>>> a = 'I love %s'
>>> a % 'Python'
'I love Python'
>>> a % 'logic'
'I love logic'
s = 's1 = %s,s2 = %s'%('Hello','World')
print(s)
>>>s1 = Hello,s2 = World
%f 浮點數
s1 = '鋼鐵俠'
s2 = '蜘蛛俠'
a = f'Hello {s1},{s2}'
print(a)
Hello 鋼鐵俠,蜘蛛俠
b = 'I like {0}'
a = b.format('python')
print(a)
I like python
str.format():這個是Python2.6開始以後新增的一種格式化字符串的函數,它增強了格式化字符串的一個功能。
format是python2.6新增的一個格式化字符串的方法,相對於老版的%格式方法,它有很多優點。
1.不需要理會數據類型的問題,在%方法中%s只能替代字符串類型
2.單個參數可以多次輸出,參數順序可以不相同
3.填充方式十分靈活,對齊方式十分強大
4.官方推薦用的方式,%方式將會在後面的版本被淘汰
format的一個例子
1
print ‘hello {0}’.format(‘world’)
會輸出hello world
一 填充
1.通過位置來填充字符串
1
2
3
print’hello
{0} i am {1}’.format(‘Kevin’,‘Tom’) #
hello Kevin i am Tom
print’hello
{} i am {}’.format(‘Kevin’,‘Tom’) #
hello Kevin i am Tom
print’hello
{0} i am {1} . my name is {0}’.format(‘Kevin’,‘Tom’)#
hello Kevin i am Tom . my name is Kevin
foramt會把參數按位置順序來填充到字符串中,第一個參數是0,然後1 ……
也可以不輸入數字,這樣也會按順序來填充
同一個參數可以填充多次,這個是format比%先進的地方
2.通過key來填充
1
print ‘hello {name1} i am {name2}’.format(name1=‘Kevin’,name2=‘Tom’) # hello Kevin i am Tom
3.通過下標填充
1
2
3
names=[‘Kevin’,‘Tom’]
print’hello
{names[0]} i am {names[1]}’.format(names=names) #
hello Kevin i am Tom
print’hello
{0[0]} i am {0[1]}’.format(names) #
hello Kevin i am Tom
4.通過字典的key
1
2
names={‘name’:‘Kevin’,‘name2’:‘Tom’}
print ‘hello {names[name]} i am {names[name2]}’.format(names=names) # hello Kevin i am Tom
注意訪問字典的key,不用引號的
5.通過對象的屬性
1
2
3
4
5
classNames():
name1='Kevin'
name2='Tom'
print’hello
{names.name1} i am {names.name2}’.format(names=Names) #
hello Kevin i am Tom
6.使用魔法參數
1
2
3
args=[‘lu’]
kwargs = {‘name1’: ‘Kevin’, ‘name2’: ‘Tom’}
print ‘hello {name1} {} i am {name2}’.format(*args, **kwargs) # hello Kevin i am Tom
6.2.4 格式化
>>> d = "zhangsan %d age.%s age geng da"%(22,'lisi')
>>> print(d)
zhangsan 22 age.lisi age geng da
>>> w = "zhangsan {0}age.{1} age geng da"
>>> w.format(22,'lisi')
'zhangsan 22age.lisi age geng da'
需求:以4種格式化字符串的形式來實現‘521’ xxx嫁給我好嗎?
girl = '女神'
print('521 '+girl+' 嫁給我好嗎?') #拼串
print('521',girl,'嫁給我好嗎?') #傳達多個參數
print('521 %s 嫁給我好嗎?'%girl) #佔位符
print(f'521 {girl} 嫁給我好嗎?') #格式化
>>>521 女神 嫁給我好嗎?
521 女神 嫁給我好嗎?
521 女神 嫁給我好嗎?
521 女神 嫁給我好嗎?
7.基本字符串的操作
7.1字符串的其他操作
7.1.1字符串的長度
‘12355625624562563233’
字符串長度:
>>> a = 'Jerry Python'
>>> len(a)
12
>>> len('I love you')
10
7.1.2 判斷某一個字符是否在這個字符串中
7.1.3 求最大值和最小值:max(),min()
Ascii(美國信息交換標準代碼)的大小比較:
7.1.4 分割字符 :split
分割字符串一般都是以空格,逗號和點來分割
>>> s = 'I love China'
>>> s.split("")
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
s.split("")
ValueError: empty separator
>>> s.split(" ")
['I', 'love', 'China']
>>> b = "www.baidu.com"
>>> b.split('.')
['www', 'baidu', 'com']
7.1.5 拼接字符串: join()
一般都是以“-”來拼接
>>> a = 'abc'
>>> '-'.join(a)
'a-b-c'
7.1.6 去空格:
1. strip():兩邊去空格
2. lstrip ():左邊去空格
lstrip裏面的l是字母“L”
3. rstrip():右邊去空格
>>> a = ' Python '
>>> a
' Python '
>>> a.strip()
'Python'
>>> a.lstrip()
'Python '
>>> a.rstrip()
' Python'
7.1.7 字符串的大小寫格式:
1. upper()全部大寫
2. lower()全部小寫
3. capitalize()首字母大寫
4. isupper() 判斷是不是大寫:True或者False
isupper():在字母全部都是大寫時纔會判斷爲大寫,
例如:JERRY(True) Jerry(False) jerrY(False) jerry(False) jeRry(False)
5. islower() 判斷是不是小寫:True或者False
islower():在字母全部都是小寫時纔會判斷爲小寫
例如:jerry(True) JERRY(False) Jerry(False) jerrY(False) jeRry(False)
>>> a = "I Love China"
>>> a.upper()
'I LOVE CHINA'
>>> a.lower()
'i love china'
>>> c = 'jerry'
>>> c.capitalize()
'Jerry'
>>> c.islower()
True
>>> c.isupper()
False
8. 字符串(類型檢查)
8.1類型檢查:type()
a = '456'
b = 456
print(type(a))
print(type(b))
print(type(1))
print(type(1.6))
print(type(True))
print(type('鋼鐵俠'))
print(type(None))
>>><class 'str'>
<class 'int'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
<class 'NoneType'>
9.變量
變量:就是將不確定的數據進行存儲
什麼時候定義變量?
當數據不確定的時候,需要對數據進行存儲的時候,我們爲您就定義一個變量來完成動作。
name = ‘張三’
a = 2
xxxx a 5
xxxx a 10
xxxxx 100 102 106 1101
什麼時變量?就是計算機內存中的一塊區域,通俗的說變量就是給數據起個名字
>>> a = 3
>>> b = 3
>>> id(3)
1831431248
注意:兩個對象相等和兩個對象時同一個對象是兩個概念
只要在運算過程中含有浮點數,那麼它返回的一定是浮點數類型
>>> s1 = {'Jerry':'Python'}
>>> s1
{'Jerry': 'Python'}
>>> import copy
>>> s2 = copy.deepcopy(s1)
>>> s2
{'Jerry': 'Python'}
>>> s1 ==s2
True
>>> id(s1),id(s2)
(2244958654040, 2244959316296)
>>> a = 10
>>> b = 4
>>> c = 2
>>> a - b
6
>>> a + b
14
>>> a / b
2.5
>>> 1 + 2
3
>>> 1.0 + 2
3.0
>>> 1.0 + 3.0
4.0
>>> 1 * 2
2
>>> 1.0 * 2
2.0
>>> 1 * 2.0
2.0
>>> 1.0 * 2.0
2.0