文章目錄
- 一、資料型別
- 1、思維導圖
- 2、案例演示
- 二、變數 - 資料容器
- 1、引入變數 - 超市購物
- 2、變數與賦值
- (1)什么是變數
- (2)給變數賦值
- 3、交換變數值
- 三、深入數值型別
- (一)數值型別
- 1、整型
- (1)十進制(decimal)
- (2)二進制(binary)
- (3)八進制(octal)
- (4)十六進制(hexadecimal)
- (5)不同進制之間相互轉換
- 2、浮點型
- 3、復數型
- (二)型別轉換函式
- 1、引入型別轉換
- 2、型別轉換函式表
- 3、型別轉換函式使用示例
- (三)初試math模塊
- 1、匯入math模塊
- 2、匯入math模塊指定常量或函式
- 3、匯入math模塊全部常量和函式(不建議使用)
- (四)初試random模塊
- 1、random模塊里的函式
- 2、猜數游戲 - 使用隨機整數
一、資料型別
1、思維導圖

2、案例演示
- 撰寫程式 - 演示資料型別.py

- 說明:利用type()函式可以獲取資料的型別
- 說明:第11、12、13行,format()函式的第一個引數將二進制、八進制和十六進制數故意加了引號,否則輸出時會自動轉換成十進制整數顯示,
- 說明:第20行,format()函式的第一個引數故意寫成嵌套引號,否則輸出時就不會顯示引號,
# -*- coding: utf-8 -*-
"""
功能:演示資料型別
作者:華衛
日期:2020年11月4日
"""
print('{}的型別是{}'.format(None, type(None)))
print('{}的型別是{}'.format(4568, type(4568)))
print('{}的型別是{}'.format('0b010', type(0b010)))
print('{}的型別是{}'.format('0o562', type(0o562)))
print('{}的型別是{}'.format('0x4ae', type(0x4ae)))
print('{}的型別是{}'.format(-67.35, type(-67.35)))
print('{}的型別是{}'.format(5+4j, type(5+4j)))
print('{}的型別是{}'.format(True, type(True)))
print('{}的型別是{}'.format(False, type(False)))
print('{}的型別是{}'.format("'瀘職院'", type('瀘職院')))
print('{}的型別是{}'.format([1, 3, 5], type([1, 3, 5])))
print('{}的型別是{}'.format((1, 3, 5), type((1, 3, 5))))
print('{}的型別是{}'.format({1, 3, 5}, type({1, 3, 5})))
print('{}的型別是{}'.format({1: 'Mike', 3: 'Amy', 5: 'Brian'},
type({1: 'Mike', 3: 'Amy', 5: 'Brian'})))
- 運行程式,查看結果

二、變數 - 資料容器
1、引入變數 - 超市購物
- 現實生活中,大家去超市買東西的時候,往往都需要一個菜籃子,用來進行存盤物品,等到所有的物品都購買完成后,在收銀臺進行結賬即可,

2、變數與賦值
(1)什么是變數
- 在程式運行期間,隨時可能產生一些臨時資料,應用程式會將這些資料保存在一些記憶體單元中,每個記憶體單元都用一個識別符號來標識,這些記憶體單元我們稱之為變數,定義的識別符號就是變數名,記憶體單元中存盤的資料就是變數值,
(2)給變數賦值
-
格式:變數名 = 資料
-
Python中的變數用來存盤資料,變數可以理解為去超市購物的菜籃子,其型別和值在賦值的那一刻被初始化,
n1 = 12
n2 = 8
sum = n1 + n2
n1和n2變數就好比一個小菜籃子,它們分別存盤的資料是12和8,sum變數存盤的資料是n1和n2這兩個“菜籃子”中的資料累計之和,- 將12賦給n1,于是n1就是整型(int),當然n2和sum都是整型(int),

3、交換變數值

- 在實際應用中,經常會遇到交換兩個變數值的情況,比如在選擇法排序里就會用到,
- 交換變數值有幾種方法,下面我們通過案例進行演示,
- 撰寫程式 - 交換變數值.py

# -*- coding: utf-8 -*-
"""
功能:交換變數值
作者:華衛
日期:2020年11月5日
"""
print('交換變數值方法【1】:')
a = 100
b = 200
print('交換前:a = {}, b = {}'.format(a, b))
t = a
a = b
b = t
print('交換后:a = {}, b = {}'.format(a, b))
print('交換變數值方法【2】:')
a = 100
b = 200
print('交換前:a = {}, b = {}'.format(a, b))
a = a + b
b = a - b
a = a - b
print('交換后:a = {}, b = {}'.format(a, b))
print('交換變數值方法【3】:')
a = 100
b = 200
print('交換前:a = {}, b = {}'.format(a, b))
a = a ^ b
b = a ^ b
a = a ^ b
print('交換后:a = {}, b = {}'.format(a, b))
print('交換變數值方法【4】:')
a = 100
b = 200
print('交換前:a = {}, b = {}'.format(a, b))
a, b = b, a
print('交換后:a = {}, b = {}'.format(a, b))
- 運行程式,查看結果

- 說明:通過對比,方法【4】最簡單,并且是Python所特有的,其余三種方法,用其它語言也能實作,比如Java語言,

package net.hw.basic;
/**
* 功能:交換變數值
* 作者:華衛
* 日期:2020年11月05日
*/
public class SwapVariableValues {
public static void main(String[] args) {
int a, b, t;
System.out.println("交換變數值方法【1】:");
a = 100;
b = 200;
System.out.println("交換前:a = " + a + ", b = " + b);
t = a;
a = b;
b = t;
System.out.println("交換后:a = " + a + ", b = " + b);
System.out.println("交換變數值方法【2】:");
a = 100;
b = 200;
System.out.println("交換前:a = " + a + ", b = " + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("交換后:a = " + a + ", b = " + b);
System.out.println("交換變數值方法【3】:");
a = 100;
b = 200;
System.out.println("交換前:a = " + a + ", b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("交換后:a = " + a + ", b = " + b);
}
}
- 運行程式,查看結果


三、深入數值型別
(一)數值型別
1、整型
(1)十進制(decimal)
- 在Python里,不帶任何前綴的整數都是十進制整數,比如
456、-2000,
(2)二進制(binary)
- 在Python里,二進制整數以
0b作為前綴,比如0b101011001、-0b1011011,
(3)八進制(octal)
- 在Python里,八進制整數以
0o作為前綴,比如0o567、-0o175,
(4)十六進制(hexadecimal)
- 在Python里,十六進制整數以
0x作為前綴,比如0x4a5f、-0xa59e,
(5)不同進制之間相互轉換
- 參看:各種進制數按位權展開
- 其它進制轉換成十進制的方法:按位權展開求和法
- 十進制轉換成其它進制的方法:除基倒取余法
- 撰寫程式 - 進制相互轉換.py

- 運行程式,查看結果

- Python2.x有長整型(long),但是Python3.x只有整型(int),整型變數可以存盤很大很大的整數,

2、浮點型
- 型別:<class ‘float’>
- 實體演示

- 浮點型數都是有誤差的,不像整數是精確的,在實際應用中,一般會有精確度要求,比如精確到小數點后面幾位,
- 利用Python內置函式round()可以實作精確度要求

3、復數型
- 型別:<class ‘complex’>
- 實體演示

(二)型別轉換函式
1、引入型別轉換
- 整型不能與字串進行加法運算

- 利用str()函式將整數轉換成字串就可以與字串拼接

2、型別轉換函式表
| 函式 | 功能 |
|---|---|
| int(x [, base ]) | 將x轉換為一個整數 |
| float(x) | 將x轉換到一個浮點數 |
| complex(real [, imag ]) | 創建一個復數 |
| str(x) | 將物件 x 轉換為字串 |
| repr(x) | 將物件 x 轉換為運算式字串 |
| eval(str) | 用來計算在字串中的有效Python運算式,并回傳一個物件 |
| tuple(s) | 將序列 s 轉換為一個元組 |
| list(s) | 將序列 s 轉換為一個串列 |
| chr(x) | 將一個整數轉換為一個字符 |
| ord(x) | 將一個字符轉換為它的整數值 |
| hex(x) | 將一個整數轉換為一個十六進制字串 |
| oct(x) | 將一個整數轉換為一個八進制字串 |
| bin(x) | 將一個整數轉換為一個二進制字串 |
3、型別轉換函式使用示例
- int()函式

- float()函式

- complex()函式

- str()函式

- repr()函式

- eval()函式

- tuple()函式

- list()函式

- chr()與ord()函式(互為反函式)

- bin()、oct()與hex()函式

(三)初試math模塊
1、匯入math模塊
- 匯入math模塊,呼叫其常量與函式

- 查看math模塊里的全部函式

- 如此匯入math模塊,使用其常量或函式,必須加math前綴,否則報錯

2、匯入math模塊指定常量或函式
- 匯入math模塊里的e, pi, sqrt, pow

3、匯入math模塊全部常量和函式(不建議使用)
- 使用“*”通配符

(四)初試random模塊
- 亂數可以用于數學,游戲,安全等領域中,還經常被嵌入到演算法中,用以提高演算法效率,并提高程式的安全性,在Python里,利用random模塊提供的函式可以產生亂數,
1、random模塊里的函式
| 函式 | 描述 |
|---|---|
| choice(seq) | 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數 |
| randrange ([start, ] stop [, step]) | 從指定范圍內,按指定基數遞增的集合中獲取一個亂數,基數預設值為1 |
| randint(start, stop) | 從指定范圍[a, b]內產生一個隨機整數 |
| random() | 隨機生成下一個實數,它在[0,1)范圍內 |
| seed([x]) | 改變亂數生成器的種子seed,如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed |
| shuffle(lst) | 將序列的所有元素隨機排序 |
| uniform(x, y) | 隨機生成下一個實數,它在[x, y]范圍內 |
- choice()函式

- randrange()函式

- randint()函式

- random()函式

- shuffle()函式 - 可用于隨機亂序出題

- uniform()函式

2、猜數游戲 - 使用隨機整數
- 游戲規則:程式產生一個[1, 100]之間的隨機整數,用戶輸入整數進行猜測,如果猜對了,就會回圈你是否要繼續玩游戲;如果猜錯了,程式會提示你是猜高了還是猜低了,然后讓你繼續輸入整數進行猜測,
- 撰寫程式 - 猜數游戲.py

# -*- coding: utf-8 -*-
"""
功能:猜數游戲
作者:華衛
日期:2020年11月5日
"""
from random import randint
choice = "yes"
while choice == "yes":
target = randint(1, 100)
num = int(input("Try to guess the number I'm thinking of: "))
while num != target:
if num < target:
num = int(input("Too low! Guess again: "))
elif num > target:
num = int(input("Too high! Guess again: "))
choice = input("That's it! Would you like to play again? (yes/no) ")
print("Thanks for playing!")
- 運行程式,查看效果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206269.html
標籤:其他
下一篇:小趙講堂系列1-特征工程這件小事
