打開Python官網地址
下載 executable installer,x86 表示是 32 位機子的,x86-64 表示 64 位機子的。
開始安裝
import keywordkeyword.kwlist# 關鍵字列表["False", "None", "True", "and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return", "try", "while", "with", "yield"]
Python中單行注釋以 # 開頭,實例如下:
# 第一個注釋 print ("Hello, Python!") # 第二個注釋
多行注釋可以用多個 # 號,還有’’"和 “”“xxxx”"":
# 第一個注釋 # 第二個注釋 """ 第三注釋 第四注釋 """ """ 第五注釋 第六注釋
# 正確行與縮進 if True: print ("True") else: print ("False") # 錯誤的行與縮進 if True: print ("Answer") print ("True") else: print ("Answer") print ("False") # 縮進不一致,會導致運行錯誤
total = item_one + / item_two + / item_three
在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(),例如:
total = ["item_one", "item_two", "item_three", "item_four", "item_five"]
Python中數字有四種類型:整數、布爾型、浮點數和復數。
int (整數), 如 1, 只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
bool (布爾), 如 True和False
float (浮點數), 如 1.23
complex (復數), 如 1 + 2j、 1.1 + 2.2j
查看類型,用type()方法
字符串
python中單引號和雙引號使用完全相同
使用三引號(’’"或""")可以指定一個多行字符串
def hello(): pass # 此處為空行 def word(): pass
input("請輸入你的名字")
x = "a" y = "b" # 換行輸出 print( x ) print( y ) print("---------") # 不換行輸出 print( x, end=" " ) print( y, end=" " ) print()
本章節主要說明Python的運算符。舉個簡單的例子 1 +2 = 3 。 例子中,1 和 1、2 被稱為操作數,"+" 稱為運算符。
Python語言支持以下類型的運算符:
以下假設變量:a=10,b=20
運算符 | 描述 | 實例 |
---|---|---|
+ | 加: 兩個對象相加 | a + b 輸出結果 30 |
- | 減 - 得到負數或是一個數減去另一個數 | a - b 輸出結果 -10 |
* | 乘: 兩個數相乘 | a * b 輸出結果 200 |
返回一個被重復若干次的字符串,如:HI*3 | HI,HI,HI | |
/ | 除: x除以y(即兩個數的商) | b / a 輸出結果 2 |
% | 取模:返商的余數 | b % a 輸出結果 0 |
** | 冪:返回x的y次冪 | a**b 為10的20次方,輸出結果100000000000000000000 |
// | 取整除: 返回商的整數部分 | 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
注:加號也可用作連接符,但兩邊必須是同類型的才可以,否則會報錯,如:23+ “Python” ,數字23和字符串類型不一致
比較運算符
以下假設變量a為10,變量b為20
運算符 | 描述 | 實例 |
---|---|---|
== | 等于:比較對象是否相等 | (a == b) 返回 False |
!= | 不等于:比較兩個對象是否不相等 | (a != b) 返回 True |
> | 大于:返回x是否大于y | (a > b) 返回 False |
< | 小于:返回x是否小于y | (a < b) 返回 True。 |
>= | 大于等于:返回x是否大于等于y | (a >= b) 返回 False |
<= | 小于等于:返回x是否小于等于y | (a <= b) 返回 True |
注:所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意True和False第一個字母是大寫
賦值運算符
以下假設變量a為10,變量b為20
運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值為 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 |
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
運算符 | 邏輯表達式 | 描述 | 實例 |
---|---|---|---|
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 |
運算符 | 描述 | 實例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False | x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
身份運算符用于比較兩個對象的存儲單元
運算符 | 描述 | 實例 |
---|---|---|
is | is 是判斷兩個標識符是不是引用自一個對象 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not | is not 是判斷兩個標識符是不是引用自不同對象 | x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
以下表格列出了從最高到最低優先級的所有運算符:
運算符 | 描述 |
---|---|
** | 指數 (最高優先級) |
~ + - | 按位翻轉, 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) |
* / % // | 乘,商,取余和取整除 |
+ - | 加法減法 |
>> << | 右移,左移運算符 |
& | 位 ‘AND’ |
^ | | 位運算符 |
<= < > >= | 比較運算符 |
<> == != | 等于運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
in not in | 成員運算符 |
not or and | 邏輯運算符 |
# -*- coding: utf-8 -*-# @Author : 碼上開始var1 = "Hello World!"var2 = "Hello World!"
# -*- coding: utf-8 -*-# @Author : 碼上開始var = “Hello World”print(var[0])#運行結果H
# -*- coding: utf-8 -*-# @Author : 碼上開始print(var1[0:6] + “Python”) #運行結果:Hello Python另一種寫法:print(var1[:6] + “Python”)#運行結果:Hello Python
#-*- coding: utf-8 -*-#@Author : 碼上開始first_word = “碼上”last_word = “開始”print(first_word + last_word)#運行結果為:碼上開始
# -*- coding: utf-8 -*-# @Author : 碼上開始language = "Python " language.rstrip() # 刪除右邊空格language = " Python" language.lstrip() # 刪除左邊空格language = " Python " # language.strip() # 刪除左右空白
# str傳入的是字符串 str.startswith(str, beg=0,end=len(string))
方法用于檢查字符串是否是以指定子字符串開頭,如果是則返回 True,否則返回 False。
如果參數 beg 和 end 指定值,則在指定范圍內檢查。
# -*- coding: utf-8 -*-# @Author : 碼上開始str = "this is string example....wow!!!"# 默認從坐標0開始匹配this這個字符print str.startswith( "this" )# 指定下標從2到4匹配isprint str.startswith( "is", 2, 4 )# 同上print str.startswith( "this", 2, 4 )# 運行結果TrueTrueFalse
傳入的值為元組時
# -*- coding: utf-8 -*-# @Author : 碼上開始string = "Postman"# 元組中只要任一元素匹配則返回True,反之為Falseprint(string.startswith(("P", "man"),0))# 雖然元組元素Po/man都存在字符中,但不匹配開始的下標,所以仍返回值Flaseprint(string.startswith(("Po", "man"),1))
# 語法 str.endswith(string,[, start[, end]])
Python endswith() 方法用于判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回True,否則返回False。
可選參數"start"與"end"為檢索字符串的開始與結束位置。
# -*- coding: utf-8 -*-# @Author : 碼上開始string = "this is string example....wow!!!"; str = "wow!!!"print(string.endswith(str))print(string.endswith(str,20)) str1 = "is"print(string.endswith(str1, 2, 4))print(string.endswith(str1, 2, 6))# 運行結果TrueTrueTrueFalse
# -*- coding: utf-8 -*-# @Author : 碼上開始age = 29print("my age is %d" %age)#my age is 29name = "makes"print("my name is %s" %name)#my name is makesprint("%f" %2.3)#2.300000
**format()格式化:**占位符{},搭配format()函數一起使用
位置映射
print("{}:{}".format("192.168.0.100",8888))#192.168.0.100:8888
關鍵字映射
print("{server}{1}:{0}".format(8888,"192.168.1.100",server="Web Server Info :"))#Web Server Info :192.168.1.100:8888
下表實例變量 a 值為字符串 “Hello”,b 變量值為 “Python”:
操作符 | 描述 | 實例 |
---|---|---|
+ | 字符串連接 | a + b ‘HelloPython’ |
* | 重復輸出字符串 | a * 2 ‘HelloHello’ |
[] | 通過索引獲取字符串中字符 | a[1] ‘e’ |
[ : ] | 截取字符串中的一部分 | a[1:4] ‘ell’ |
in | 成員運算符 - 如果字符串中包含給定的字符返回 True | “H” in a True |
not in | 成員運算符 - 如果字符串中不包含給定的字符返回 True | “M” not in a True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。 | >>>print r’/n’ /n >>> print R’/n’ /n |
[]
創建a = [1, "jack", True, 100]b = []
使用list()
可以將任何可迭代的數據轉化成列表
a = list() # 創建一個空列表b = list(range(5)) # [0, 1, 2, 3, 4]c = list("nice") # ["n", "i", "c", "e"]
range()
創建整數列表range()可以幫助我們非常方便的創建整數列表,這在開發中及其有用。語法格式為:`range([start,]end[,step])
start參數:可選,表示起始數字。默認是0。
end參數:必選,表示結尾數字。
step參數:可選,表示步長,默認為1。
python3中range()
返回的是一個range對象,而不是列表。我們需要通過list()
方法將其轉換成列表對象。
a = list(range(-3, 2, 1)) # [-3, -2, -1, 0, 1]b = list(range(2, -3, -1)) # [2, 1, 0, -1, -2]
a = [i * 2 for i in range(5) if i % 2 == 0] # [0, 4, 8]points = [(x, y) for x in range(0, 2) for y in range(1, 3)]print(points) # [(0, 1), (0, 2), (1, 1), (1, 2)]
當列表增加和刪除元素時,列表會自動進行內存管理,大大減少了程序員的負擔。但這個特點涉及列表元素的大量移動,效率較低。除非必要,我們一般只在列表的尾部添加元素或刪除元素,這會大大提高列表的操作效率。
append()
>>>a = [20,40]>>>a.append(80)>>>a[20,40,80]
+
運算符>>> a = [3, 1, 4]>>> b = [4, 2]>>> a + b[3, 1, 4, 4, 2]
extend()
將目標列表的所有元素添加到本列表的尾部,屬于原地操作,不創建新的列表對象。
>>> a = [3, 2]>>> a.extend([4, 6])>>> a[3, 2, 4, 6]
insert()
使用insert()
方法可以將指定的元素插入到列表對象的任意指定位置。這樣會讓插入位置后面所有的元素進行移動,會影響處理速度。涉及大量元素時,盡量避免使用。類似發生這種移動的函數還有:remove()、pop()、del(),它們在刪除非尾部元素時也會發生操作位置后面元素的移動。
>>> a = [2, 5, 8]>>> a.insert(1, "jack")>>> a[2, "jack", 5, 8]
>>> a = [4, 5]>>> a * 3[4, 5, 4, 5, 4, 5]
適用于乘法操作的,還有:字符串、元組。
del()
>>> a = [2, 3, 5, 7, 8]>>> del a[1]>>> a[2, 5, 7, 8]
pop()
>>> a = [3, 6, 7, 8, 2]>>> b = a.pop()>>> b2>>> c = a.pop(1)>>> c6
remove()
>>> a=[10,20,30,40,50,20,30,20,30]>>> a.remove(20)>>> a[10, 30, 40, 50, 20, 30, 20, 30]
clear()
a = [3, 6, 7, 8, 2]a.clear()print(a) # []
>>> a = [2, 4, 6]>>> a[1]4
index()
獲得指定元素在列表中首次出現的索引index()
可以獲取指定元素首次出現的索引位置。語法是:index(value,[start,[end]])
。其中,start
和end
指定了搜索的范圍。>>> a = [10, 20, 30, 40, 50, 20, 30, 20, 30]>>> a.index(20)1>>> a.index(20, 3)5>>> a.index(20, 6, 8)7
返回指定元素在列表中出現的次數。
>>> a = [10, 20, 30, 40, 50, 20, 30, 20, 30]>>> a.count(20)3
[起始偏移量start:終止偏移量end[:步長step]]
三個量為正數的情況下
| 操作和說明 | 示例 | 結果 |
| ---------------------------------------------------- | ------------------------------------- | -------------- |
| [:]
提取整個列表 | [10, 20, 30][:]
| [10, 20, 30]
|
| [start:]
從start索引開始到結尾 | [10, 20, 30][1:]
| [20, 30]
|
| [:end]
從頭開始到 end-1 | [10, 20, 30][:2]
| [10, 20]
|
| [start:end]
從 start 到 end-1 | [10, 20, 30, 40][1:3]
| [20, 30]
|
| [start:end:step]
從 start 提取到 end-1,步長是step | [10, 20, 30, 40, 50, 60, 70][1:6:2]
| [20, 40, 60]
|
三個量為負數的情況
| 示例 | 說明 | 結果 |
| ------------------------------------- | ---------------------- | ------------------------ |
| [10, 20, 30, 40, 50, 60, 70][-3:]
| 倒數三個 | [50, 60, 70]
|
| [10, 20, 30, 40, 50, 60, 70][-5:-3]
| 倒數第五個至倒數第四個 | [30, 40]
|
| [10,20,30,40,50,60,70][::-1]
| 逆序 | [70,60,50,40,30,20,10]
|
t1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]print(t1[100:]) # []print(t1[0:-1]) # [11, 22, 33, 44, 55, 66, 77, 88]print(t1[1:5:-1]) # []print(t1[-1:-5:-1]) # [99, 88, 77, 66]print(t1[-5:-1:-1]) # []print(t1[5:-1:-1]) # []print(t1[::-1]) # [99, 88, 77, 66, 55, 44, 33, 22, 11]# 注意以下兩個print(t1[3::-1]) # [44, 33, 22, 11]print(t1[3::1]) # [44, 55, 66, 77, 88, 99]123456789101112131415161718
a = [3, 2, 8, 4, 6]print(id(a)) # 2180873605704a.sort() # 默認升序print(a) # [2, 3, 4, 6, 8]print(id(a)) # 2180873605704a.sort(reverse=True)print(a) # [8, 6, 4, 3, 2]12345678# 將序列的所有元素隨機排序import randomb = [3, 2, 8, 4, 6]random.shuffle(b)print(b) # [4, 3, 6, 2, 8]12345
sorted()
進行排序,這個方法返回新列表,不對原列表做修改。a = [3, 2, 8, 4, 6]b = sorted(a) # 默認升序c = sorted(a, reverse=True) # 降序print(b) # [2, 3, 4, 6, 8]print(c) # [8, 6, 4, 3, 2]12345
list1 = [34,54,6,5,65,100,4,19,50,3]#冒泡排序,以升序為例#外層循環:控制比較的輪數for i in range(len(list1) - 1): #內層循環:控制每一輪比較的次數,兼顧參與比較的下標 for j in range(len(list1) - 1 - i): #比較:只要符合條件則交換位置, # 如果下標小的元素 > 下標大的元素,則交換位置 if list1[j] < list1[j + 1]: list1[j],list1[j + 1] = list1[j + 1],list1[j]print(list1)
li = [17, 4, 77, 2, 32, 56, 23]# 外層循環:控制比較的輪數for i in range(len(li) - 1): # 內層循環:控制每一輪比較的次數 for j in range(i + 1, len(li)): # 如果下標小的元素>下標大的元素,則交換位置 if li[i] > li[j]: li[i], li[j] = li[j], li[i]print(li)
# 順序查找# 1.需求:查找指定元素在列表中的位置list1 = [5, 6, 5, 6, 24, 17, 56, 4]key = 6for i in range(len(list1)): if key == list1[i]: print("%d在列表中的位置為:%d" % (key,i))# 2.需求:模擬系統的index功能,只需要查找元素在列表中第一次出現的下標,如果查找不到,打印not found# 列表.index(元素),返回指定元素在列表中第一次出現的下標list1 = [5, 6, 5, 6, 24, 17, 56, 4]key = 10for i in range(len(list1)): if key == list1[i]: print("%d在列表中的位置為:%d" % (key,i)) breakelse: print("not found")# 3.需求:查找一個數字列表中的最大值以及對應的下標num_list = [34, 6, 546, 5, 100, 16, 77]max_value = num_list[0]max_index = 0for i in range(1, len(num_list)): if num_list[i] > max_value: max_value = num_list[i] max_index = iprint("最大值%d在列表中的位置為:%d" % (max_value,max_index))# 4.需求:查找一個數字列表中的第二大值以及對應的下標num_list = [34, 6, 546, 5, 100, 546, 546, 16, 77]# 備份new_list = num_list.copy()# 升序排序for i in range(len(new_list) - 1): for j in range(len(new_list) - 1 - i): if new_list[j] > new_list[j + 1]: new_list[j],new_list[j + 1] = new_list[j + 1],new_list[j]print(new_list)# 獲取最大值max_value = new_list[-1]# 統計最大值的個數max_count = new_list.count(max_value)# 獲取第二大值second_value = new_list[-(max_count + 1)]# 查找在列表中的位置:順序查找for i in range(len(num_list)): if second_value == num_list[i]: print("第二大值%d在列表中的下表為:%d" % (second_value,i))
# 二分法查找的前提:有序li = [45, 65, 7, 67, 100, 5, 3, 2, 35]# 升序new_li = sorted(li)key = 100# 定義變量,表示索引的最小值和最大值left = 0right = len(new_li) - 1# left和right會一直改變# 在改變過程中,直到left==rightwhile left <= right: # 計算中間下標 middle = (left + right) // 2 # 比較 if new_li[middle] < key: # 重置left的值 left = middle + 1 elif new_li[middle] > key: # 重置right的值 right = middle - 1 else: print(f"key的索引為{li.index(new_li[middle])}") breakelse: print("查找的key不存在")
reverse()
a = [3, 2, 8, 4, 6]a.reverse()print(a) # [6, 4, 8, 2, 3]
copy()
復制列表,屬于淺拷貝。
a = [3, 6, 7, 8, 2]b = a.copy()print(b) # [3, 6, 7, 8, 2]
max()
和min()
a = [3, 2, 8, 4, 6]print(max(a)) # 8print(min(a)) # 2
sum()
對數值型列表的所有元素進行求和操作,對非數值型列表運算則會報錯。
a = [3, 2, 8, 4, 6]print(sum(a)) # 23
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119689.html
文章目錄 強烈推薦系列教程,建議學起來!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內部配置 4.2手動添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動補碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開頭八、這個前言一定要看九、pyt...
目錄 一、什么是C語言? 二、第一個C語言程序 代碼 程序分析 ?程序運行 一個工程中出現兩個及以上的main函數 代碼 運行結果 分析 三、數據類型 數據各種類型 為什么會有這么多的數據類型? 計算機單位 ?各個數據類型的大小 ?注意事項 數據類型的使用 四、變量和常量 變量的分類 變量的使用 變量的作用域和生命周期 ?常量 五、字符串+轉義字符+注釋 字符串 ?轉義字符 注釋 六、選擇語句 ?...
閱讀 2403·2021-10-14 09:43
閱讀 2435·2021-09-09 09:34
閱讀 1601·2019-08-30 12:57
閱讀 1198·2019-08-29 14:16
閱讀 716·2019-08-26 12:13
閱讀 3201·2019-08-26 11:45
閱讀 2282·2019-08-23 16:18
閱讀 2652·2019-08-23 15:27