float相乘后的类型_Psychopy | 第1期:数据类型及运算符
Hello,這里是行上行下,我是喵君姐姐~
上期我們邀請阿槑講解了psychopy入門,今天繼續邀請阿槑進行相關知識的講解喲~
psychopy是基于python來進行編寫以及運行的,而python中,數據類型及其運算是最為基礎的知識。本期就給大家介紹在編寫心理學實驗過程中比較常用的數據類型以及其適用的運算方法。
先拍思維導圖
在行為實驗編寫過程中,常用的數據類型包括字符串,整型,浮點型,元組,列表,字典。
因為這一部分涉及的內容與方法比較多,因此這里只介紹在心理學實驗編寫過程中最常用的相關內容。
1 字符串
對于字符串,在我們推送的第0期中已經有過一些介紹,當時我們以'psychology' 為例介紹了字符串的基本形式(psychopy coder入門,點擊即可跳轉喲)。
同時,在Python中,字符串是可以進行運算的。比較常用的是字符串的相加以及字符串與整數的相乘。
注:在本文中,操作基本是在Shell中完成的,>>> 后是輸入的內容,無 >>> 標記的為回車后輸出內容。下同:
在例子中我們可以看到,字符串之間相加就是將加起來的每一部分拼在一起,而字符串與整數的相乘則是把內容重復相應的次數。
需要注意的是,字符串只有這兩種簡單的運算方式,其余方式如減、除等都會報錯。
2 整型
所謂整型,可以將其簡單地理解為整數。在python中,所有的數學基本運算形式在python中都可以直接實現。比如,當我們在Shell中輸入3+2,回車就可以得到5這一結果。同樣的,我們在腳本中輸入以下內容, 也可以在Output得到同樣的結果。
a = 3+2 print (a)在python中,包括加,減,乘,除,乘方,括號等基本運算形式都可以直接通過輸入相應的算式來進行運算。python的運算符主要分為四個大類:
首先是算術運算符,就是我們平時常用的加(+),減(-),乘(*),除(/)等。
需要注意的是,除法在python2(psychopy2)和python3(psychopy3)中的規則有些許差異。
在python2(psychopy2)的環境下,運算中的小數位數(尤其是除法)取決于除數與被除數的小數位數,如 3/2 會得到 1 ,而 3.0/2 或者 3/2.0 會得到1.5。
與之相對,在python3(psychopy3)環境下則不會出現這個問題, 3/2 可得 1.5,如果想在此環境下得到類似于python2(psychopy2)的結果,則需使用準確除(//)來進行運算,如3//2就可得到1。
另外,乘方的表示方法為(**),也就是說,2**3 是指 2 的 3 次方,從Shell中我們可以直接得到結果 8。
還有一個平時比較少見的運算方法是取余(%),當我們在Shell中輸入 3/2 時,我們可以得到結果 1.5,而當我們輸入 3%2 時,我們會得到 3/2 運算過程的余數 1。
第二類是賦值運算符,這一類基本是以 = 來進行變量的賦值,如之前的腳本中,我們先將 a 賦值為 3+2 的運算結果,然后通過 print 將這一結果輸出出來。
a = 3+2 print (a)賦值運算中存在比較特殊的一種表達形式,當我們需要進行類似于運算 a = a+5 時,我們可以直接將其簡寫為 a+=5,這一方法在四則運算的任何一種運算形式中都適用。
值得注意的是,如果在Shell中直接輸入 a+=5 ,將會報錯 name 'a' is not defined. 也就是說,在使用這一運算時需要先給 a 賦值,對于單獨的 a = a+5 來說,等號右邊的 a 是沒有被定義的,在訪問時會出錯,也就無法進行進一步的運算。
第三類是比較運算符,主要包括等于(==),不等于(!=),大于(>),小于(>),大于等于(>=),小于等于(<=)。
這一類運算符可以得到符號兩邊的內容是否符合規則,比如,當我們在Shell中輸入 1==2 時,就可以得到 False 這一結果,而輸入 1<=2時,則可以得到True這一結果:
最后一類被稱為邏輯運算符,主要包括 and, or, not 三類。
其中,and 的兩邊都為True 時,才會得到 True,如:
or 的兩邊只要有一邊為 True 時,就可以得到 True:
而 not 則是將 True 和 False 之間進行相互轉化。
3 浮點型
浮點型從直觀上來看就是小數,整型中涉及的所有運算在浮點數中也都適用,雖然看起來整型與浮點型都是數字,但是在python中二者屬于兩種不同的數據類型。
此外,整數和浮點數之間可以正常的加減乘除運算,但是其無法與字符串進行運算(字符串與整數相乘除外)。
要想使二者順利相加,需要將整型或浮點型轉化為字符串,用方法str()進行轉換。
同樣的,字符串想要轉化成整型或浮點型則需要用 float() 或 int() 來進行轉換。
當使用float()方法進行轉換時,轉換出來的是浮點型的形式:
如果想要獲得整型,則需要繼續使用 int() 函數去掉小數:
或者,int()也可以直接將是整型數字形式的字符串轉化為數字:
但是浮點型的字符串并不能這樣轉化
此外,int() 函數在去除小數的時候并不遵循四舍五入的原則,而是直接去掉小數部分
4 元組
所謂元組,其形式是小括號中存在的一組內容,可以是數字,也可以是字符串,比如:
(11.8, 11, 'psychology')元組最大的特點在于內容固定,無法修改或去除元素。
對于元組來說,可以做的常用操作包括計算元素個數,連接,重復,成員運算符,按索引訪問以及查找索引。
計算元素個數可以使用 len() 來進行操作,如:
連接類似于字符串;
重復同樣與字符串類似;
當我們想判斷某個元素是否在該元組中時,我們可以用成員運算符(in或not in)進行操作。
當我們想要訪問元組中某個元素時,我們可以通過元素的索引進行訪問,與我們一般的習慣不同,Python中元素的索引從0開始計算的,對于:
(11.8, 11, 'psychology')這一元組,11.8位于第0位,11位于第1位,'psychology'位于第2位。
因此,當我們想訪問11時,我們可以通過位置得到:
注意,在訪問特定位置時位置標號使用的是中括號。
對于元素比較多的元組,如果我們想取元組中的一部分元素,可使用劃分(切片)的方式從元組中取一組連續的元素,同時這種方式將會產生一個新的元組,其格式與訪問單個元素不同的地方是有一個冒號,例如:
可以看到,對于冒號兩邊的位置序數來說,遵循左閉右開原則,即在例子中1<=索引序數<5,即 1,2,3,4 號位被劃分出來。
特殊的,如果想劃分從開頭到某一位置的元素或從某一位置元素開始到最后的所有元素,則可直接:
同樣遵循左閉右開原則同理
按索引訪問還有一種比較少用的方法即使用負數;
而查找索引,類似于按索引訪問的逆運算,即通過某一內容來得出該內容所在的位置序數;
如果元組中有重復的元素,index() 則會得出該元素第一次出現的位置;
元組還有一個特殊的地方在于當只有一個元素時需要在元素后加逗號才能構成元組,否則只能輸出為數字或字符串,如:
5 列表
相對于元組,列表形式是更為常用的形式。
從直觀上來看,列表與元組的區別之一在于列表是用中括號來包括它的元素,如:
[11.8, 11, 'psychology']列表與元組相似,所有元組可以進行的包括計算元素個數,連接,重復,成員運算符,按索引訪問以及查找索引等操作對于列表都可以進行,且使用方法基本一致。
除了這些基本的功能外,列表還可以進行添加,刪除,反序操作
添加我們一般使用列表對象的append()方法進行,這一方法是在列表的尾部添加新元素:
如果要在某個位置添加新元素,則使用insert(),其中第一個參數為位置,第二個參數為內容:
與添加相對,刪除我們可以使用pop()方法來進行操作,pop()的對應參數是具體的元素位置,它會首先返回該位置的元素,并將改元素刪除,如果不寫數字,則默認為刪除最后一個元素:
刪除的另一個方法是 remove(), 與pop() 不同,remove()方法的參數是具體的元素內容,且當有重復元素時,刪除第一個匹配的元素:
反序則使用方法 reverse()
6 字典
還是先從直觀上來說,字典是用大括號來包括元素的,并且每個元素都是 關鍵字:值(key:value) 這樣的形式,如:
{'Bob':'psychology', 'Mike':30, 'Alice':[1,2,3]}其中,關鍵字只能是不可變變量(如字符串、整型、浮點型、元組);與之相對,內容的形式不限。
一般來說,關鍵字會使用字符串的形式。需要注意的是,在一個字典中,關鍵字只能有一個,但是不同的鍵可以對應相同的值。
與元組與列表不同,字典有其獨特的規則。
首先,在訪問時不能使用索引進行訪問,而要通過關鍵字來進行訪問,如:
其次,移除字典中的元素使用 del;
或者,與列表相似,使用pop()方法;
最后,修改或添加可以在類似于關鍵字索引來進行,如:
修改
添加
到此,Python中常用的運算與數據類型已經基本介紹完畢。
雖然內容比較多,但是以上介紹的規則在后面的心理學實驗編寫過程中都會常用到。
當然,無論是字符串,數字,還是元組,列表,以及字典,其操作的全部規則與內置方法還有很多,如果有興趣可以通過 Python的官網 或者其他途徑搜索獲取。
在自己嘗試操作中,這一部分建議直接在Shell中進行操作即可。
PS:本文首發于微信公眾號 行上行下,公眾號后臺回復關鍵詞“psychopy第1期”即可獲得所述的資料及代碼啦!
總結
以上是生活随笔為你收集整理的float相乘后的类型_Psychopy | 第1期:数据类型及运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当兵的家属有什么优待
- 下一篇: P90价格多少美元?