Python入門之一
python
是一種解釋行,物件導向的動態資料型別的高階程式設計語言,在1989
年發明;- 解釋型:開發過程中沒有編譯這個環節,類似於
shell
; - 互動型:支援
python
提示符,互動執行程式; - 物件導向:支援物件導向的風格或者程式碼封裝在物件的程式設計技術;
- 解釋型:開發過程中沒有編譯這個環節,類似於
python
的特點:- 易於學習:關鍵字相對較少,結構簡單;
- 易於閱讀:
Python
程式碼閱讀清晰; - 擁有廣泛的標準庫;
- 可移植性好;
- 可擴充套件性好:可以使用其他的程式碼來擴充這部分程式碼;
- 支援多種
GUI
變成以及系統呼叫; - 支援將
Python
程式碼嵌入到C/C++
程式中;
- 缺點:
- 執行速度慢:和
C
程式相比非常慢,Python
屬於解釋性語言,程式碼在執行時會一行一行翻譯成CPU
機器程式碼,翻譯過程十分耗時; - 程式碼不能夠加密:解釋型語言只能夠釋出原始碼,不像
C
語言釋出成二進位制的可執行檔案;
- 執行速度慢:和
- 註釋
- 程式碼的註釋使用
#
進行註釋; - 多行註釋使用
'''註釋多行 '''
,寫程式碼時,不應該存在中文字元; - 同樣的
"""註釋多行"""
; - 輸出
print
:列印雙引號之間的內容;
print("hello world")
- 如果需要列印多條資訊,可以使用
,
進行分割
print("hi python","hello python")
- 輸出的結果是
- 輸出數字以及運算
print(19)
print(10 + 8)
print("10 + 8 ", 18)
- 輸出的結果是
- 輸入
input
:用於從標準輸入獲取變數的值
age=input("please input your age ")
print("age = ", age)
-
輸出的結果為
-
Python的資料型別
-
number
: -
整數:
Python
可以處理任意大小的整數,同時也包括負整數,在程式中的寫法和數學表達是一致的; -
連續定義多個變數
num1 = 10
num3 = num2 = num1 //這樣變數的地址是一樣的
num6,num7 = 6,6這兩個變數的地址也是一樣的;
print(id(num2),id(num3));
93941385645920 93941385645920
- 浮點數:浮點數由整數部分和小數部分組成,浮點數運算可能會丟失精度;
float1 = 1.1
float2 = 2.30000
print(type(float1))
print(float1+float2)
-
結果為
-
複數:表示的實數部分和虛數部分組成;
-
數值型別轉換:
print(int(1.9))
print(int('123'))
print(int("+123"))
print(int("-112"))
- 常見的數學函式
abs()
:用於返回某個數的絕對值;print((num2>num3)-(num2<num3))
:用於表示比較這兩個數的大小,返回值為1 0 -1
;max(arg1,arg2,arg3..)
:用於返回給定引數的最大值;min(arg1,arg2,arg3..)
:用於返回給定引數的最小值;pow(x,y)
:用於計算x^y
的結果;round(x,y)
:表示保留y
位,x
的值,省略表示的就是隻保留整數位;math
庫:數學運算相關的庫;math.ceil(18.1)
:表示向上取整;math.flooe()
:表示向下取整;math.modf(22.3)
:用於將一個數拆分為整數[浮點型]部分和小數部分;math.sqrt()
:表示用於開平方;
print(max(num2,num3))
print(min(num2,num3))
print(pow(num2,num3))
print(round(3.456,1))
- 隨機數:
print(random.choice([1,3,5,7,9,"aa"])) //在這些數裡面選出隨機數
print(random.choice(range(5)))
print(random.choice("sunck"))
print(random.choice(range(100))+1)
print(random.randrange(1,100,2)) //1-->100生成隨機數[包含1,但是不包含100],步長為2;
print(random.randrange(100)) //start預設是0,步長預設為1
print(random.random()) //隨機生成[0,1)之間的浮點數;
- 將列表中的元素進行隨機排序
list = [1,2,3,4,5]
random.shuffle(list)
print(list)
- 顯示的結果為
- 隨機生成實數
random.uniform(3,9) //範圍是[3,9]
- 隨機數小程式
import random
num = int(input("please input your number "))
res = random.choice(range(100)) + 1
if num == res:
print("you are lucky")
else:
print("not you")
string
: 表示字串,python
裡面沒有字元的概念;- 字串是以單引號或者雙引號引用的任意文字,引號本身不是資料;
str1 = "hello today"
str2 = "hello tomorrow"
- 字串運算:
+
:用於連線字串
str1 = "hello today "
str2 = "hello tomorrow"
print(str1)
str3 = str1 + str2
*
:表示字串的多次輸出,也就是拼接
str3 = "oo "
print(str3*3)
[]
用於獲取某個單個字元
str1 = "hello today "
str2 = "hello tomorrow"
print(str1[1])
str1[1]='a' //字串不可變原則,所以一定會出錯;
- 擷取字串
str2 = "hello tomorrow,it's a new day"
print(str2[2:14])
print(str2[:13])
print(str2[10:])
- 顯示的的結果
- 關於
in
的使用
str2 = "hello tomorrow,it's a new day"
print("hello" in str2)
print("hi" in str2)
- 輸出的結果
- 轉義字元
\n
:用於表示換行;
print("num = %d \nstr = %s\nfnum =%f " %(num,str1,fnum2))
print("today is \\n a new day")
print('today is a \'new\' day')
print("today is a 'new' day")
- 如果需要列印多行,使用
print('''
today
is
a
good
day
''')
\t
:表示製表符,預設是4
個空格
print("today is a \t good day")
r
:如果字串中,存在很多字元進行轉義,為了簡化,允許使用r
表示內部的字串預設不轉義
print(r"\\\\t\\\\")
eval()
:用於將字串當成有效的表示式來求值,並且返回計算結果,用於將字串轉換成整數不能夠用於處理字母;
num = eval("1234")
print(num)
print(type(num))
num = eval("12+34")
print(num)
print(type(num)) //輸出結果為46
len()
:用於返回字元個數,並不計算位元組個數
print(len("today is a new day"))
lower(str)
:轉換字串中的大寫字母為小寫字母
str2 = "Hello tomoRRow,it's a new day"
print(str2.lower()) //並不改變原有字串的;
upper()
:將小寫字母轉換為大寫字母
print(str2.upper())
swapcase()
:用於將大寫轉換為小寫,用於將小寫轉換為大寫
print(str2.swapcase())
capitalize()
:只有將首字母大寫,其他字母都是小寫
print(str2.capitalize())
Hello tomorrow,it's a new day
title()
:每個單詞的首字母大寫
print(str2.title())
Hello Tomorrow,It'S A New Day
center(width,filechar)
:表示寬度和填充字元
print(str1.center(40,'*'))
**************hello today**************
ljust()
:表示進行左對齊,預設是空格填充
print(str1.ljust(20,"%"))
hello today%%%%%%%%%
rjust()
:表示返回一個指定長度的字串,是右對齊,預設使用空格填充
print(str1.rjust(20,'*'))
*********hello today
zfill()
:返回指定字串的長度,字串右對齊,預設使用0
進行填充
print(str1.zfill(20))
000000000hello today
count(str[,start][,end])
:可以用於在指定字串的位置中查詢指定字串出現的位置
str2 = "Hello tomotoRRow,it's a new day"
print(str2.count("to",5,len(str2)))
2
find(str[,start][,end[)
:用於查詢指定字串重做開始第一次出現的位置,如果不存在就返回-1
str2 = "Hello tomotoRRow,it's a new day"
print(str2.find("to",7,len(str2)))
10
rfind()
:用法和上面一樣,表示從由向左進行查詢
print(str2.rfind("to"))
10
index(str,start=0,end-len=(str))
:用法和上面一樣,如果指定字串不存在,就會報錯;
str2 = "Hello tomotoRRow,it's a new day"
print(str2.index("too"))
Traceback (most recent call last):
File "/root/PycharmProjects/test/first.py", line 5, in <module>
print(str2.index("too"))
ValueError: substring not found
-
rindex()
:表示從右向左進行查詢,如果找不到,就會出錯 -
lstrip()
:用於去掉字串左側指定的字元,預設為空格
str2 = "*******Hello tomotoRRow,it's a new day"
print(str2.lstrip('*'))
Hello tomotoRRow,it's a new day
split(" ",num)
:表示按照某個關鍵字將字串進行切割,如果指定num
表示擷取指定的num
個字串;
string1 = "today is a new day, but where are you"
string2 = string1.split(" ")
wordnum = 0
for i in string2:
if len(i) > 0:
wordnum +=1
print(wordnum)
9
splitlines(true | false)
:表示按照\r, \r\n, \
分隔,true
表示返回換行符,false
表示不返回換行符;
string1 = '''today is an new day, but where are you
the next day is an new day
hello tomorrow
'''
print(string1.splitlines())
print(string1.splitlines(True))
['today is an new day, but where are you', 'the next day is an new day ', 'hello tomorrow']
['today is an new day, but where are you\n', 'the next day is an new day \n', 'hello tomorrow\n']
join
:用於將列表組合成為字串
list1 = ['today is an new day, but where are you', 'the next day is an new day ', 'hello tomorrow']
string1 = "\n".join(list1)
print(string1)
today is an new day, but where are you
the next day is an new day
hello tomorrow
max()
:表示用於返回字串裡面的最大值;min()
:表示用於返回字串裡面的最小值,按照ASCII
進行比較;replace(old,new,count)
:表示要替換的值,替換的值,替換的次數,預設進行全部替換,如果指定了count
,那麼只進行前count
的替換;
string1 = "today is an new day"
string2 = string1.replace("an","a",1)
print(string2)
maketrans("對映前","對映後")
:表示建立字串對映表,是一張表,每個字元對應進行替換,是按照字元為單位的,替換前後的字元數必須相等;translate()
:表示執行上面的對映
string1 = str.maketrans("an", "6o")
string2 = "today is an an an an new day"
string3 = string2.translate(string1)
print(string3)
tod6y is 6o 6o 6o 6o oew d6y
-
這種替換較少使用;
-
startwith("str", num1, num2)
:表示從num1
到num2
進行查詢,是否是以str
開頭的字串,如果沒有指定範圍,預設是整個字串;
string2 = "today is an an an an new day"
print(string2.startswith("an", 3, 10))
False
endwith("str",
num1,
num2)
:使用同上,用於判斷是否是str
結尾的- 編碼:
encode("utf-8,"ignore")
string2 = "today is an an an an new day"
data = string2.encode("utf-8")
print(data)
print(type(data))
解碼
string3 = data.decode("utf-8")
print(string3)
b'today is an an an an new day'
today is an an an an new day
-
解碼和編碼必須使用同樣的格式,否則會出錯;
-
isalpha()
:表示如果字串中至少有一個字元,並且所有的字元都是字母,但會True
,否則返回False
; -
isalnum
:表示字串中至少有一個字元,並且所有的字元都是字母或者數字返回True
,否則返回False
; -
isupper()
:表示字串中至少有一個英文字元,且所有的英文字元必須都是大寫的英文字母,返回True
,否則返回False
,如果包含數字也會返回True
-
islower()
:表示字串中至少一個英文字元,並且所有的英文字元必須都是小寫的英文字元; -
istitle()
:表示如果字串是標題化的就返回True
,否則就是返回False
,標題化表示單詞的第一個字母必須是大寫; -
isdigit()
:如果字串只包含數字,返回True
,否則返回False
; -
isnumeric()
:字串中只包含數字字元,返回為True
; -
isdecimal()
:字串中只包含十進位制字元; -
isspace()
:如果字串中只包含空格,返回True
,否則返回False
; -
rstrip()
:作用和上面的一樣 -
ord()
:用於將字母轉換成為ACSII
-
chr()
:用於將某些ASCII
轉換成為值; -
字串進行比較的規則:
- 某個字串的
ASCII
的大,那麼就是比第二個; - 如果相等,就會比較下一個字元的
ASCII
;
- 某個字串的
-
boolean
:用於表示true
以及false
,有且只有這兩種值, -
None
:是一個特殊值,但是不能夠使用0
來進行表示; -
list
-
列表用於儲存更多的資料 ,列表表示一組有序的集合,並且允許時不同的型別
age = []
print(age)
[]
age = [12, 23, 34, 45]
print(age)
[12, 23, 34, 45]
list1 = [1, 2, "sunck", True]
print(list1)
[1, 2, 'sunck', True]
- 取值和替換:對於元素的訪問從
0
開始,並且訪問不能夠越界;
list1 = [1, 2, "sunck", True]
print(list1[1])
list1[1] = 12
print(list1)
- 層級巢狀 不能夠超過
3
層 - 列表操作
list2 = age + list1
print(list2)
- 列表重複
print(age * 3)
[12, 23, 34, 45, 12, 23, 34, 45, 12, 23, 34, 45]
- 判斷元素是否在列表中
print(12 in age)
- 列表擷取
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list2[2:6])
print(list2[2:])
print(list2[:6])
[3, 4, 5, 6]
[3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6]
- 二維列表
list33 = [[1,2,3],[4,5,6],[7,8,9]]
print(list33[1][1])
- 列表方法
append
:表示在末尾一次性追加另一個列表中的多個值;
list1 = [1, 2, 3, 4, 5]
list1.append(6)
print(list1)
list1.append([7, 8, 9])
print(list1)
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, [7, 8, 9]]
- 追加的是一個列表中的元素
list1 = [1, 2, 3, 4, 5]
list1.extend([6, 7, 8])
print(list1)
[1, 2, 3, 4, 5, 6, 7, 8]
insert
: 在下標處,新增一個元素,將列表當做一個元素來處理
list1 = [1, 2, 3, 4, 5]
list1.insert(3, 100)
print(list1)
[1, 2, 3, 100, 4, 5]
- 插入的是一個列表
list1 = [1, 2, 3, 4, 5]
list1.insert(3, [100, 200])
print(list1)
[1, 2, 3, [100, 200], 4, 5]
pop(x=list[-1])
:預設表示列表最後一個元素被彈走,可以指定下標移除指定元素,並且返回刪除的資料
list1 = [1, 2, 3, 4, 5]
print(list1[-1])
5
list1.pop()
print(list1)
[1, 2, 3, 4]
list1.pop(2)
print(list1)
[1, 2, 4]
remove()
:表示用於刪除指定元素第一個匹配的結果,首先會查詢指定元素的值
list1 = [1, 2, 3, 4, 4, 4, 5]
list1.remove(4)
print(list1)
[1, 2, 3, 4, 4, 5]
clear()
:用於刪除列表中的所有元素
list1 = [1, 2, 3, 4, 4, 4, 5]
list1.clear()
print(list1)
[]
index()
:表示從列表中找出第一個匹配的索引
list1 = [1, 2, 3, 4, 4, 4, 5]
print(list1.index(3))
print(list1.index(4, 2, 7))
2
3
len()
:用於獲取列表裡面的元素個數
list1 = [1, 2, 3, 4, 4, 4, 5]
print(len(list1))
max()
:用於獲取列表中的最大值;min()
:用於獲取列表中的最小值;count()
:用於查詢某個元素出現的次數;reverse()
:用於進行列表的倒序;sort()
:預設進行升序排序;- 關於淺拷貝與深拷貝
list1 = [1, 2, 3, 4, 4, 4, 5]
list2 = list1
list2[3] = 300
print(list2)
print(list1)
print(id(list1))
print(id(list2))
[1, 2, 3, 300, 4, 4, 5]
[1, 2, 3, 300, 4, 4, 5]
140657342356296
140657342356296
- 棧區:程式結束,自動釋放程式空間;
- 堆區:手動申請,手動釋放,普通變數儲存在棧區;
- 淺拷貝的地址結構
- 由於執行的是淺拷貝,棧區
list27
和list28
裡面儲存的是堆區裡面的同一段地址空間的首地址0x100
,其實訪問的是同一片地址空間; - 深拷貝
list1 = [1, 2, 3, 4, 4, 4, 5]
list2 = list1.copy()
list2[3] = 300
print(list2)
print(list1)
print(id(list1))
print(id(list2))
[1, 2, 3, 300, 4, 4, 5]
[1, 2, 3, 4, 4, 4, 5]
140278067989320
140278067987720
-
深拷貝表示的是記憶體拷貝,
-
元組轉換為列表
list2 = list((1, 2, 3, 4, 5))
print(list2)
[1, 2, 3, 4, 5]
- 分解質因數的小程式
num = int(input())
i = 2
list1 = []
if num == 1:
print(1)
while num != 1:
if num % i == 0:
list1.append(i)
num //= i
else:
i += 1
print(list1)
- ** tuple**
- 表示元組,元組和列表的不同之處在於,元組裡面的元素不能夠進行修改,但是可以進行元組的組合;
- 建立元組
tuple2 = (1, 2, 3, 4, "hello", True)
- 對於只有一個元素的元組
tuple1 = (1, )
- 元組的訪問,下標從
0
開始,並且不允許越界;
print(tuple2[3]) //下標為 0
print(tuple2[-1]) //用於獲取最後一個元素 [-2]表示倒數第二個元素
- 對於這樣一種情況是可以進行修改的.也就是對於元組裡面存在可修改的列表時,是可以進行修改的;
tuple2 = (1, 2, 3, 4, 5, [7, 8, 9])
tuple2[-1][0] = 50
print(tuple2)
(1, 2, 3, 4, 5, [50, 8, 9])
- 元組表示的是元組裡面的資料不可變,但是列表中的資料是可以進行改變的;
- 刪掉元組
del tuple2
- 元組的操作
+
:表示相加
print(tuple2 + tuple1)
(1, 2, 3, 4, 5, [50, 8, 9], 1, 2, 3, 4)
*
:表示乘法
tuple3 = (1, 2, 3)
print(tuple3 * 3)
(1, 2, 3, 1, 2, 3, 1, 2, 3)
in
: 判斷元素是否在元組裡面
tuple3 = (1, 2, 3)
print( 1 in tuple3)
- 元組的擷取:從開始下標開始擷取,結束到結束下標之前;
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tuple1[3:])
print(tuple1[3:5])
print(tuple1[:5])
(4, 5, 6, 7, 8, 9)
(4, 5)
(1, 2, 3, 4, 5)
- 二維元組
tuple2 = ((1, 2, 3, 4),(1, 2, 3, ),(1, 2, 3, ),(4, 5, 6, ))
print(tuple2[1][1])
- 元組的方法
len()
:用於返回元組裡面元素的個數
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
max()
:用於返回元組裡面的最大值
print(max(tuple1))
- 將列表轉換成元組
list1 = [1, 2, 3, 4, 5]
tuple2 = tuple(list1)
print(tuple2)
(1, 2, 3, 4, 5)
- 元組的列印
for i in tuple2:
print(i)
- dictionary
- 表示字典,使用鍵值的儲存形式,具有快速的查詢速度,
key-value
,對於key
的要求:- 首先
key
必須是唯一的; key
:必須是不可變的物件;- 字串,整數都必須是不可變的,可以作為
key
; list
是可變的,不能夠作為key
- 首先
- 字典的建立
dict1 = {"tom":60, "xiaoxiao":90, "houhou":100}
- 通過
key
來訪問value
,通過這種方式取值,如果值不存在,就會報錯;
print(dict1["jerry"])
- 大多數情況下是通過下面這種方式來取值的,因為如果取的值不存在,不會進行報錯,方便進行返回值的判斷;
print(dict1.get("houhouo"))
- 新增
dict1["cat"] = 99 //如果字典裡面內部存在就是新增
dict1["jerry"] = 90 //字典裡面存在就是修改
- 刪除
dict1.pop("houhou") //刪除的前提是必須存在
- 遍歷
dict1 = {"tom":60, "jerry":90, "houhou":100}
print(dict1.get("houhouo"))
dict1["cat"] = 99
dict1["jerry"] = 90
for key in dict1:
print(key, dict1[key])
for value in dict1.values():
print(value)
for key, value in dict1.items():
print(key, value)
for key, values in enumerate(dict1):
print(key, values)
0 tom
1 jerry
2 houhou
3 cat
dictionary
:- 字典的儲存一般是無序的;
- 和
list
相比,查詢和插入的速度是極快的,不會隨著key-value
的增加而變慢; dict
在儲存資料時,還需要儲存序號,會導致記憶體浪費;
list
:- 查詢和插入的速度會隨著數量的增多而減慢;
- 佔用記憶體小,記憶體浪費小;
- 一個用於查詢字串中的關鍵字
w = "the"
str = "this is a good day, hello the new day, the the a and what the weather;"
d = {}
list = str.split(" ")
print(list)
for value in list:
need = d.get(value)
if need == None:
d[value] = 1
else:
d[value] += 1
print(d[w])
print(d)
w = "the"
str = "this is a good day, hello the new day, the the a and what the weather;"
d = {}
list = str.split(" ")
print(list)
for value in list:
need = d.get(value)
if need == None:
d[value] = 1
else:
d[value] += 1
print(d[w])
print(d)
['this', 'is', 'a', 'good', 'day,', 'hello', 'the', 'new', 'day,', 'the', 'the', 'a', 'and', 'what', 'the', 'weather;']
4
{'what': 1, 'good': 1, 'and': 1, 'day,': 2, 'this': 1, 'is': 1, 'the': 4, 'new': 1, 'hello': 1, 'a': 2, 'weather;': 1}
-
set
:表示集合; -
識別符號
-
識別符號是字串,但是字串未必是識別符號;
-
識別符號遵守的規則:
- 只能夠通過字母,數字,下劃線組成;
- 開頭不能夠使數字;
- 不能夠使
Python
的關鍵字和保留字; - 識別符號對於大小寫敏感;
- 見名知意
- 在
Python3
中,允許使用非ASCII
來定義識別符號;
-
表示符是用來給變數和函式進行命名的;
-
檢視關鍵字
import keyword
print(keyword.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']
- 變數和常量
- 變數表示可以操作的儲存空間名稱,還表示程式執行期間能夠改變的資料,對於每個變數來說都存在特定的型別;變數是用來將不同型別的資料儲存在記憶體裡面;
- 定義變數:
name = 初始值
,初始值是為了確定變數的型別,變數的型別根據初始值確定的; - 資料的儲存是
變數名 = 資料值
,這個是用來儲存資料值的; - 變數在使用之前必須進行定義,否則會出錯;
- 定義變數:
- 一個簡單的求和程式
number1 = int(input("please input a number"))
number2 = int(input("please input a number "))
print("the sum is ",number1+number2)
-
顯示結果為
-
刪除變數
-
del name
,刪除之後,變數無法引用,用於釋放記憶體空間;
del number1
del number2
- 檢視變數的型別
print(type(number1))
<class 'int'>
- 檢視變數的地址
print(id(age))
140043296231312 //變數的首地址
-
常量:程式執行期間不能夠改變的資料,成為常量
-
運算子和表示式
-
表示式:由變數,常量和運算子組成的式子;
-
算術運算表示式不會改變變數的值,
-
運算子:
-
算術運算子:
+ - * /
,%
取模,**
求冪,//
取整;
賦值運算子:=
,格式是變數 = 表示式
,計算了等號右側的表示式的值並且賦值給等號左側的變數; -
複合運算子:
+= -= /= %= **= //=
-
位運算子:將數值當做二進位制數來進行運算;
&
:表示按位與運算子,如果按位進行運算,兩個值都為1
,結果為1
,否則為0
;|
:表示二進位制位有一個為1
時,結果為1
;^
:表示按位異或運算子,兩個二進位制位不同時,結果為1
;~
:表示按位取反運算子;<<
:表示二進位制位向左移動幾位,高位丟棄,低位補0
;
0000 0000 0000 0010
0000 0000 0000 1000
* `>>`:表示各個二進位制向右移動幾位,低位丟棄;
-
關係運算子和關係運算表示式的結果是
true
和false
-
==
!=
>
<
>=
<=
-
邏輯運算子:
-
表示式1 and 表示式2
:雙真為真; -
表示式1 or 表示式2
:一個為真,就是真; -
not 表示式
:真為假,假為真; -
成員運算子
-
in
:如果在指定的序列中,找到的指定的值,返回值為true
,否則為false
; -
not in
:如果在指定的序列中,沒有找到的指定的值,返回值為true
,否則為false
; -
身份運算子
-
is
:判斷兩個識別符號是不是引用同一個物件; -
is not
:判斷兩個識別符號是不是引用不同的物件; -
運算子優先順序
-
** --> ~ + - --> * / % // --> + - --> << >> --> & --> ^ | --> < > <= >= --> == != --> = --> is --> in --> not or and
-
判斷語句
if 表示式:
語句
else:
語句
-
當程式執行到
if 語句
時,首先計算表示式的值,並且得到表示式的真假,表示式為真,執行if
語句 ,如果表示式為假,則跳過if
語句,向後執行; -
假:
0
以及0.0
或者''
再或者False
; -
其餘都為真;
-
判斷三位的水仙花數
num1 = int(input("please input a number "))
a = num1 % 10
b = num1 //10 % 10
c = num1 //100
if num1 == a**3 + b**3 + c**3:
print("yes")
else:
print("no")
- 三個數取最大值
max = num1
if num2 > max:
max = num2
if num3 > max:
max = num3
- 迴圈
while
迴圈
while 表示式:
語句
- 表示式的結果為真,執行語句,執行完成語句之後,再次計算表示式的值,繼續進行判斷,知道為假;
while i < 100:
sum += i
i += 1
print("down")
print(sum)
while index < len(string1) - 1:
print(string1[index])
index += 1
if-elif-else
語句
if 表示式1:
語句
elif 表示式2:
語句2
.
.
.
else:
語句n
- 每個
elif
都是對上面條件的否定; - 迴圈語句
- 死迴圈:表示表示式永遠為真的迴圈;
while 表示式:
語句1
else:
語句2
- 執行的邏輯是:在表示式語句為
false
,會執行else:
中的語句2
; for
迴圈語句:
for 變數名 in 集合:
語句
- 按照順序取集合中的每個元素複製給變數,然後執行語句,知道取完集合中的元素;
range()
:列表生成器,用於生成數列,表示範圍[0,n)
;
for i in range(2,20,2): 開始位置預設為0,結束位置,步長預設為1
print(i)
- 獲取下標
for index, i in enumerate([1, 2, 3, 4, 5]):
print(index, i)
break
:用於跳出for
和while
的迴圈,只能跳出距離最近的那一層迴圈;continue
:用於跳過當前迴圈的剩餘語句,然後繼續下一次迴圈,同樣只能夠跳過最近的一次迴圈;turtle
:是一個簡單的繪圖工具done()
:用於保持程式不結束;forward()
:表示向前移動,原點預設是從中間開始的;backward()
:表示向後移動;right()
:left()
goto(x,y)
:移動到座標為x
,y
的位置speed()
:表示移動的速度;up
:表示在移動過程中,不畫圖down()
:表示開始劃線setheading()
:改變朝向pencolor()
:用於表示顏色pensize()
:用於表示粗細reset()
:用於清空視窗,重置turtle
狀態clear()
:表示清空視窗,但是不會重置turtle
circle()
:表示用於繪製圓形,或者是五邊形- 關於填充
turtle.begin_fill()
turtle.fillcolor("blue")
:表示填充什麼顏色turtle.end_fill()
:表示結束填充undo()
:表示撤銷生一次動作;hideturtle()
:表示隱藏海龜showtutle()
:表示用於顯示海龜screensize()
:表示更改顯示的螢幕大小
相關文章
- aix_shell入門之一AI
- AV Foundation簡單入門之一
- java webservice開發入門之一JavaWeb
- Python爬蟲入門【6】:蜂鳥網圖片爬取之一Python爬蟲
- Node.js入門教學之一Node.js
- linux程式設計之一:入門Linux程式設計
- Python入門Python
- 微信小程式入門教程之一:初次上手微信小程式
- 給初學者的入門知識之一(轉)
- Python入門(案例)Python
- Python快速入門Python
- 【python】git入門PythonGit
- Python(1):入門Python
- python 入門教程Python
- Python入門難嗎?如何順利入門Python學習?Python
- Python入門必知的知識點!Python基礎入門Python
- python 入門常識Python
- 說下Python入門Python
- Python入門筆記Python筆記
- 如何快速入門PythonPython
- Python 入門筆記Python筆記
- Python入門細節Python
- Python入門-函式Python函式
- Python 股票分析入門Python
- Python入門—time模組Python
- Python爬蟲入門Python爬蟲
- python入門導學Python
- Python入門(九):集合Python
- python tornado 入門Python
- python OpenCV 入門教程PythonOpenCV
- Python gRPC 入門PythonRPC
- Python NLP入門教程Python
- python 中BeautifulSoup入門Python
- Spark入門(Python版)SparkPython
- Python Mock的入門PythonMock
- 8天讓iOS開發者上手Flutter之一:快速入門FlutteriOSFlutter
- MySQL入門--MySQL複製技術之一主多從MySql
- 人工智慧入門基礎之一代宗師人工智慧