摘要:從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為隨機(jī)生成下一個(gè)實(shí)數(shù),它在范圍內(nèi)。從中選取一個(gè)奇數(shù)從選取一個(gè)隨機(jī)數(shù)不會(huì)改變隨機(jī)數(shù)生成器的種子。
1.Python基礎(chǔ)語(yǔ)法
轉(zhuǎn)自菜鳥(niǎo)教學(xué):https://www.runoob.com/python
1.1 簡(jiǎn)單執(zhí)行命令
print("Hello,Python!)"
1.2 腳本文件添加可執(zhí)行權(quán)限
$chmod +x test.py #腳本文件添加可執(zhí)行權(quán)限 $ ./test.py
1.3 標(biāo)識(shí)符:
_foo代表不能直接訪問(wèn)的類(lèi)屬性,需通過(guò)類(lèi)提供的接口進(jìn)行訪問(wèn),不能用from xxx import *而導(dǎo)入;
以雙下劃線開(kāi)頭的__foo代表類(lèi)的私有成員;以雙下劃線開(kāi)頭結(jié)尾的__foo__代表Python里特殊方法專(zhuān)用的標(biāo)識(shí),如__init__()代表類(lèi)的構(gòu)造函數(shù)。
1.4 同一行顯示多條語(yǔ)句,用分號(hào);隔開(kāi),如:
>>> print ("hello");print("Python");
1.5 多行語(yǔ)句顯示
Python語(yǔ)句中一般以新行作為語(yǔ)句的結(jié)束符。
但是我們可以使用斜杠( )將一行的語(yǔ)句分為多行顯示,如下所示:
total = item_one + item_two + item_three
語(yǔ)句中包含 [], {} 或 () 括號(hào)就不需要使用多行連接符。如下實(shí)例:
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
1.6 Python引號(hào)
Python 可以使用引號(hào)( " )、雙引號(hào)( " )、三引號(hào)( """ 或 """ ) 來(lái)表示字符串,引號(hào)的開(kāi)始與結(jié)束必須的相同類(lèi)型的。
其中三引號(hào)可以由多行組成,編寫(xiě)多行文本的快捷語(yǔ)法,常用于文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。
word = "word" sentence = "這是一個(gè)句子。" paragraph = """這是一個(gè)段落。 包含了多個(gè)語(yǔ)句"""
1.7 Python空行
函數(shù)之間或類(lèi)的方法之間用空行分隔,標(biāo)識(shí)一段新的代碼開(kāi)始。
類(lèi)和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開(kāi)始。
空行不會(huì)報(bào)錯(cuò),但是程序代碼的一部分。
1.8縮進(jìn)報(bào)錯(cuò)提示:
IndentationError: unindent does not match any outer indentation level
錯(cuò)誤表明,你使用的縮進(jìn)方式不一致,有的是 tab 鍵縮進(jìn),有的是空格縮進(jìn),改為一致即可。
如果是 IndentationError: unexpected indent 錯(cuò)誤, 則 python 編譯器是在告訴你"Hi,老兄,你的文件里格式不對(duì)了,可能是tab和空格沒(méi)對(duì)齊的問(wèn)題",所有 python 對(duì)格式要求非常嚴(yán)格。
因此,在 Python 的代碼塊中必須使用相同數(shù)目的行首縮進(jìn)空格數(shù)。
建議你在每個(gè)縮進(jìn)層次使用 單個(gè)制表符 或 兩個(gè)空格 或 四個(gè)空格 , 切記不能混用
變量存儲(chǔ)在內(nèi)存中的值。這就意味著在創(chuàng)建變量時(shí)會(huì)在內(nèi)存中開(kāi)辟一個(gè)空間。
基于變量的數(shù)據(jù)類(lèi)型,解釋器會(huì)分配指定內(nèi)存,并決定什么數(shù)據(jù)可以被存儲(chǔ)在內(nèi)存中。
因此,變量可以指定不同的數(shù)據(jù)類(lèi)型,這些變量可以存儲(chǔ)整數(shù),小數(shù)或字符。
2.1變量賦值
Python 中的變量賦值不需要類(lèi)型聲明。
每個(gè)變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識(shí),名稱(chēng)和數(shù)據(jù)這些信息。
每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。
等號(hào)(=)用來(lái)給變量賦值。
等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。例如:
counter = 100 # 賦值整型變量 miles = 1000.0 # 浮點(diǎn)型 name = "John" # 字符串 print(counter) print(miles) print(name)
2.2 多個(gè)變量賦值
Python允許你同時(shí)為多個(gè)變量賦值。例如:
a = b = c = 1
以上實(shí)例,創(chuàng)建一個(gè)整型對(duì)象,值為1,三個(gè)變量被分配到相同的內(nèi)存空間上。
您也可以為多個(gè)對(duì)象指定多個(gè)變量。例如:
a,b,c=1,2,"john"
以上實(shí)例,兩個(gè)整型對(duì)象 1 和 2 分別分配給變量 a 和 b,字符串對(duì)象 "john" 分配給變量 c。
2.3 標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型
在內(nèi)存中存儲(chǔ)的數(shù)據(jù)可以有多種類(lèi)型。
例如,一個(gè)人的年齡可以用數(shù)字來(lái)存儲(chǔ),他的名字可以用字符來(lái)存儲(chǔ)。
Python 定義了一些標(biāo)準(zhǔn)類(lèi)型,用于存儲(chǔ)各種類(lèi)型的數(shù)據(jù)。
Python有五個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型:
Numbers(數(shù)字)
String(字符串)
List(列表)
Tuple(元組)
Dictionary(字典)
2.3.1 Python數(shù)字
數(shù)字?jǐn)?shù)據(jù)類(lèi)型用于存儲(chǔ)數(shù)值。
他們是不可改變的數(shù)據(jù)類(lèi)型,這意味著改變數(shù)字?jǐn)?shù)據(jù)類(lèi)型會(huì)分配一個(gè)新的對(duì)象。
當(dāng)你指定一個(gè)值時(shí),Number對(duì)象就會(huì)被創(chuàng)建:
var1 = 1
var2 = 10
您也可以使用del語(yǔ)句刪除一些對(duì)象的引用。
del語(yǔ)句的語(yǔ)法是:
del var1[,var2[,var3[....,varN]]]]
您可以通過(guò)使用del語(yǔ)句刪除單個(gè)或多個(gè)對(duì)象的引用。例如:
del var del var_a, var_b
數(shù)學(xué)函數(shù)
1)隨機(jī)數(shù)函數(shù)
choice(seq)
從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。seq -- 可以是一個(gè)列表,元組或字符串。
print("",random.choice(range(10,20))) print("",random.choice([1,2,3,4,5,6,7,8,9])) print("",random.choice("GOOD!")) print("",random.choice(["WL","YL","LY","QD","MY","LV","JX","SY","Teacher"])) randrange ([start,] stop [,step])
從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1
random()
隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。
import random print ("", random.randrange(1, 100, 2)) # 從 1-100 中選取一個(gè)奇數(shù) print (" ", random.randrange(100))# 從 0-99 選取一個(gè)隨機(jī)數(shù)
▲▲▲不會(huì)seed([x])
改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed。
import random random.seed() print ("使用默認(rèn)種子生成隨機(jī)數(shù):", random.random()) random.seed(10) print ("使用整數(shù)種子生成隨機(jī)數(shù):", random.random()) random.seed("hello",2) print ("使用字符串種子生成隨機(jī)數(shù):", random.random())
結(jié)果:
使用默認(rèn)種子生成隨機(jī)數(shù): 0.9186252047469824 使用整數(shù)種子生成隨機(jī)數(shù): 0.5714025946899135 使用字符串種子生成隨機(jī)數(shù): 0.3537754404730722
shuffle(lst)
將序列的所有元素隨機(jī)排序。
import random list = [20, 16, 10, 5]; random.shuffle(list) print ("隨機(jī)排序列表 : ", list) random.shuffle(list) print ("隨機(jī)排序列表 : ", list)
uniform(x, y)
隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi)。
import random print ("uniform(5, 10) 的隨機(jī)浮點(diǎn)數(shù) : ", random.uniform(0, 27)) print ("uniform(7, 14) 的隨機(jī)浮點(diǎn)數(shù) : ", random.uniform(27, 28))
2)三角函數(shù)
acos(x)
返回x的反余弦弧度值。
asin(x)
返回x的反正弦弧度值。
atan(x)
返回x的反正切弧度值。
atan2(y, x)
返回給定的 X 及 Y 坐標(biāo)值的反正切值。
cos(x)
返回x的弧度的余弦值。
hypot(x, y)
返回歐幾里德范數(shù) sqrt(xx + yy)。
sin(x)
返回的x弧度的正弦值。
tan(x)
返回x弧度的正切值。
degrees(x)
將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2) , 返回90.0
radians(x)
將角度轉(zhuǎn)換為弧度
數(shù)學(xué)常量:pi,e
2.3.1.1 Python支持四種不同的數(shù)字類(lèi)型:
int(有符號(hào)整型)
long(長(zhǎng)整形[也可以代表八進(jìn)制和十六進(jìn)制])
float(浮點(diǎn)型)
complex(復(fù)數(shù))
長(zhǎng)整型也可以使用小寫(xiě) l,但是還是建議您使用大寫(xiě) L,避免與數(shù)字 1 混淆。Python使用 L 來(lái)顯示長(zhǎng)整型。
Python 還支持復(fù)數(shù),復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用 a + bj,或者 complex(a,b) 表示, 復(fù)數(shù)的實(shí)部 a 和虛部 b 都是浮點(diǎn)型。
2.3.2 Python字符串
字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。
一般記為 :
s="a1a2···an"(n>=0)
它是編程語(yǔ)言中表示文本的數(shù)據(jù)類(lèi)型。
python的字串列表有2種取值順序:
從左到右索引默認(rèn)0開(kāi)始的,最大范圍是字符串長(zhǎng)度少1
從右到左索引默認(rèn)-1開(kāi)始的,最大范圍是字符串開(kāi)頭
如果你要實(shí)現(xiàn)從字符串中獲取一段子字符串的話(huà),可以使用 [頭下標(biāo):尾下標(biāo)] 來(lái)截取相應(yīng)的字符串,其中下標(biāo)是從 0 開(kāi)始算起,可以是正數(shù)或負(fù)數(shù),下標(biāo)可以為空表示取到頭或尾。
[頭下標(biāo):尾下標(biāo)] 獲取的子字符串包含頭下標(biāo)的字符,但不包含尾下標(biāo)的字符。
比如:
>>> s = "abcdef" >>> s[1:5] "bcde"
加號(hào)(+)是字符串連接運(yùn)算符,星號(hào)(*)是重復(fù)操作。如下實(shí)例:
實(shí)例(Python 2.0+)
str = "Hello World!" print str # 輸出完整字符串 print str[0] # 輸出字符串中的第一個(gè)字符 print str[2:5] # 輸出字符串中第三個(gè)至第五個(gè)之間的字符串 print str[2:] # 輸出從第三個(gè)字符開(kāi)始的字符串 print str * 2 # 輸出字符串兩次 print str + "TEST" # 輸出連接的字符串
以上實(shí)例輸出結(jié)果:
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
字符串是 Python 中最常用的數(shù)據(jù)類(lèi)型。我們可以使用引號(hào)("或")來(lái)創(chuàng)建字符串。
創(chuàng)建字符串很簡(jiǎn)單,只要為變量分配一個(gè)值即可。例如:
var1 = "Hello World!" var2 = "Runoob" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])
字符串更新
var1 = "Hello yelin" print("",var1[:6]+"hongsheng")
Python轉(zhuǎn)義字符
(在行尾時(shí)) 續(xù)行符 反斜杠符號(hào) "單引號(hào) "雙引號(hào) a響鈴 退格(Backspace) e轉(zhuǎn)義