變數及變數計算和引用

2022-03-15 13:52:46 字數 3454 閱讀 1753

程式的作用是處理資料,變數的作用是儲存資料

函式:乙個提前準備好的**,可以直接使用,而不用關心內部的細節

變數的定義

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 = 10

def demo1():

# 希望修改全域性變數的值

num = 20 # 此處的賦值是定義乙個區域性變數

print ( "demo1---> %d" % num )

def demo2():

print ( "demo2---> %d" % num )

demo1 () # 輸出的結果是20

demo2 () # 輸出的結果還是10

使用global關鍵字可以在函式內部修改全域性變數

num = 10

def 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...