程式的作用是處理資料,變數的作用是儲存資料
函式:乙個提前準備好的**,可以直接使用,而不用關心內部的細節
變數的定義
1)變數建立前必須經過賦值
2)賦值符號用=
3)格式:變數名 = 值
變數定義之後,後續就可以直接使用了,尤其是使用互動式檢視變數內容,直接輸入變數名即可
變數的命名規則
識別符號就是變數名、函式名、關鍵字(如import)
1>變數名不是你想怎麼起就怎麼起的,需要見名知義
2>第乙個字元必須是下劃線「_」或者字母,剩下的部分可以是字母、數字(0-9)、下劃線
3>變數名是對大小寫敏感的,如:myname和myname不是同乙個變數
4>不能與關鍵字重名
5>不能數字開頭
駝峰命名法
當變數名是由2個或以上單詞組成
小駝峰:第乙個單詞以小寫字母開始,後續單詞首字母大寫,如lastname
大駝峰:每乙個單詞首字母都大寫,如lastname
變數的型別
在記憶體中建立乙個變數,會包括變數的名稱,儲存的資料,儲存的資料型別以及變數的位址
在python中,定義變數是不需要指定變數的資料型別,因為在執行的時候,python直譯器會根據變數賦值語句,自動推導出變數中儲存的資料的準確型別
資料型別分為數字型和非數字型
數字型:
bool--布林(真對應數值為1,假對應的是0)
int--整數
float--浮點數(小數)
complex--複數型:主要用於科學計算,如電感電容
非數字型:
str--字串
列表元組
字典變數型別的檢視-函式type
使用方式:type(name)
不同型別之間的變數運算
數字型變數之間可以直接計算
字串變數之間使用 + 拼接字串
字串變數可以用整數使用 * 重複拼接,如果拼接部分使用了()表示為算術運算
數字型變數和字串之間不能進行其他計算
變數的輸入 input
輸入:用**獲取使用者通過鍵盤輸入的資訊
在python中要獲取使用者在鍵盤上的輸入資訊,需要使用input函式
語法:字串變數 = input("請輸入")
使用者輸入任何內容,python都認為是乙個字串
變數型別轉換函式
int(x):將x轉成為乙個整數
float(x):將x轉換成乙個浮點數
變數的格式化輸出(格式化字串)
格式化操作符:%
包含%的字串被稱為格式化字串
字串:%s
有符號的十進位制整數,%06d表示輸出的整數顯示位數為6位,不足的地方使用0補全:%d
浮點數,%.02f表示小數點只顯示2位:%f
輸出%:%%
十六進製制:%x
語法格式:
print("格式化字串" % 變數)print("格式化字串" % (變數1,變數2...))
c = 0.532
print("百分比 %.2f%%" % (c*100))
a = 1.1
b = 3.35
c = 5.3
print("abc三個變數的值分別為%.02f,%.02f,%.02f" % (a, b, c))
變數的引用
1)變數和資料儲存在記憶體中,是分開儲存的
2)在python中函式的引數傳遞和返回值都是靠引用傳遞的
3)資料儲存在記憶體中的乙個位置,變數中儲存著資料在記憶體中的位址
4)變數中記錄資料的位址,就叫引用
5)使用 id() 函式可以檢視變數中儲存資料所在的記憶體位址,如 a=1, id(a)
注意:如果變數已經定義,當給乙個變數賦值時,本質上就是修改了資料的記錄位址
可變和不可變型別
不可變型別:記憶體中的資料不允許被修改
數字型別
字串元祖
列表字典
注意:字典的key只能使用不可變型別的資料
可變型別使用方法修改並不會更改引用的位址,使用賦值可以修改位址
區域性變數和全域性變數
>>區域性變數 是在函式內部 定義的變數,只能在函式內部使用,不同的函式可以定義相同的名字的區域性變數,各用各的不會產生影響
>> 全域性變數 在函式外部定義的變數,(沒有定義在某乙個函式內),所有函式內部都可以使用這個變數
變數的生命週期
1)所謂生命週期:變數從 被建立 到 被系統** 的過程
2)區域性變數 在函式執行時才會被建立
3)函式執行結束後 區域性變數 被系統**
4)區域性變數在生命週期內,可以用來儲存函式內部臨時使用到的資料
全域性變數使用注意:
1)首先查詢函式內部 是否存在指定名稱的區域性變數,如果有,直接使用
2)如果沒有,查詢函式外部是否存在 指定名稱的全域性變數,如果有,直接會用
3)如果還沒有,程式報錯
全域性變數的修改
在python中,是不允許直接修改全域性變數的值
如果使用賦值語句,會在函式內部,定義乙個區域性變數,不會修改全域性變數的值
num = 10def demo1():
# 希望修改全域性變數的值
num = 20 # 此處的賦值是定義乙個區域性變數
print ( "demo1---> %d" % num )
def demo2():
print ( "demo2---> %d" % num )
demo1 () # 輸出的結果是20
demo2 () # 輸出的結果還是10
使用global關鍵字可以在函式內部修改全域性變數
num = 10def demo1():
# 希望修改全域性變數的值
global num # global的作用是告訴直譯器後面的變數是乙個全域性變數,在進行賦值語句時,就不會再建立區域性變數
num = 200
print ( "demo1---> %d" % num )
def demo2():
print ( "demo2---> %d" % num )
demo1 () # 輸出的結果是200
demo2 () # 輸出的結果還是200
全域性變數的定義位置
在開發時,應該把模組中的所有全域性變數定義在函式上方,就可以保證所有函式都能夠正常訪問到每乙個全域性變數
**結構示意圖:
shebang (寫在指令碼中第一行開頭中,它指明執行指令碼檔案的解釋程式,符號 #!如:#! python3)
import 模組
全域性變數
函式定義
執行**
全域性變數的命名的建議
為了避免全域性變數和區域性變數出現混淆,在定義全域性變數時,有些公司開發要求,如在全域性變數前應該增加g_或者gl_的字首
具體要求格式,各公司要求可能會存在差異
變數計算 型別轉換
const a 100 10 100 const b 100 10 10010 const c true 10 true10 如果我們需要拼接字串需要先將字串轉化為數字然後計算parint 100 100 true0 true 0 false true false true null undefin...
Python 批量計算變數iv值
import pandas as pd import numpy as np from sklearn.tree import decisiontreeclassifier data pd.read excel r e lll 20200311人工客群分布 sx all data 0311.xlsx...
shell變數計算長度及加減運算方法總結
變數定義 shell變數沒有整形,字串,浮點型等其餘程式語言定義的資料型別 root mytest str stringstr是乙個變數 變數輸出 root mytest echo str string 或 root mytest echo string變數常常需要計算字元的長度 root myte...