Python學習第一周總結
? 經過一周的學習后,對這一周學習的重要知識點進行一下總結,第一個重要的知識點就是:Python語言元素之變數,
一、變數和型別
1.1 變數
-
變數是資料的載體
-
變數的值可以被讀取和修改
1.2 變數命名
- 字母,數字,下劃線,不能使用特殊字符,數字不能開頭
- 變數名是區分大小寫的(x和X是兩個不一樣的變數名)
- 不能用python中的關鍵字和保留字(python中已經有含義的)
- 見名知意(看到變數的名字,就能知道它代表了什么意思)
- 變數的命名使用全小寫,多個單詞用下劃線進行分隔(snake case)
2、型別
? Python中的資料型別很多,而且也允許我們自定義新的資料型別,這里我們需要先了解幾種常用的資料型別,
-
整型(
int):Python中可以處理任意大小的整數,而且支持二進制(如0b100,換算成十進制是4)、八進制(如0o100,換算成十進制是64)、十進制(100)和十六進制(0x100,換算成十進制是256)的表示法, -
浮點型(
float):浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,浮點數除了數學寫法(如123.456)之外還支持科學計數法(如1.23456e2), -
字串型(
str):字串是以單引號或雙引號括起來的任意文本,比如'hello'和"hello", -
布爾型(
bool):布林值只有True、False兩種值,要么是True,要么是False,
二、Python語言元素之運算子
| 運算子 | 描述 |
|---|---|
[] [:] | 下標,切片 |
** | 指數 |
~ + - | 按位取反, 正負號 |
* / % // | 乘,除,模,整除 |
+ - | 加,減 |
>> << | 右移,左移 |
& | 按位與 |
^ \| | 按位異或,按位或 |
<= < > >= | 小于等于,小于,大于,大于等于 |
== != | 等于,不等于 |
is is not | 身份運算子 |
in not in | 成員運算子 |
not or and | 邏輯運算子 |
= += -= *= /= %= //= **= &= |= ^= >>= <<= | (復合)賦值運算子 |
三、分支結構(選擇結構)
? 分支結構就是指代碼中有多條路勁,但是只有其中一潭訓被執行,在Python中,要構造分支結構可以使用if、elif和else關鍵字,
具有代表性的例子就是數學上的分段函式求值:
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print(f'f(x) = {y}')
四、回圈結構
4.1 for-in回圈
- 如果明確的知道回圈執行的次數,我們推薦使用
for-in回圈
例如求兩個數的最大公約數
x = int(input('x = '))
y = int(input('y = '))
for i in range(x, 0, -1):
if x % i == 0 and y % i == 0:
print(i)
break
print(f'{x}和{y}的最大公約數:{i}')
4.2 while回圈
- 如果要構造不知道具體回圈次數的回圈結構,我們推薦使用
while回圈,while回圈通過一個能夠產生或轉換出bool值的運算式來控制回圈,運算式的值為True則繼續回圈;運算式的值為False則結束回圈,
如:輸入三角形三條邊的長度,如果能構成三角形就計算周長和面積,如果不能構成三角形,提示用戶重新輸入,直到正確,
while True:
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
x = a + b + c
p = x / 2
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print(f'周長為{x}, 面積為{s}')
break
else:
print('不能構成三角形,請重新輸入')
上面的代碼中使用while True構造了一個條件恒成立的回圈,也就意味著如果不做特殊處理,回圈是不會結束的,這也就是常說的“死回圈”,為了能夠退出回圈結構,我們使用了break關鍵字,它的作用是提前結束回圈,
4.3 嵌套回圈
? 和分支結構一樣,回圈結構也是可以嵌套的,也就是說在回圈中還可以構造回圈結構
如果知道回圈的次數,我們通常使用for回圈;如果回圈次數不能確定,可以用while回圈,在回圈中還**可以使用break**來提前結束回圈,
例子:嵌套回圈例子:求1-100之間的所有質數
for n in range(2, 100):
is_prime = True
for i in range(2, n):
if n % i == 0:
is_prime = False
break
if is_prime:
print(n, end=' ')
五、容器型資料型別(用一個變數可以保存多個資料)
-
串列(list)
-
元組(tuple)
-
集合(set)
-
字典(dict)
5.1 操作
-
通過[]建立
-
append :在末尾追加元素
-
insert :在指定位置插入元素
-
pop :洗掉最后的元素
nums = [10, 100, 1000]
print(type(nums))
print(nums)
rules = ['富強,民主,文明,和諧',
'自由,平等,公正,法治',
'愛國,敬業,誠信,友善', ]
print(type(rules))
print(rules)
nums.append(10000)
nums.insert(0, 1)
print(nums)
rules.pop()
print(rules)

5.2 遍歷
? 串列的遍歷是指把串列中的每個元素依次取出來
1、先從簡單的取一個元素開始,如:
nums = [8, 15, 5, 4, 7, 20]
print(nums[5])
表示從0開始,第5個下標位置的數,一定要注意,python中是從0開始取下標的

2、替換串列中指定位置的元素
nums = [8, 15, 5, 4, 7, 20]
print(nums[5])
nums[2] = 120
print(nums)
表示將下標為2的位置的元素替換成120

nums = [8, 15, 5, 4, 7, 20]
for i in range(6):
print(nums[i])
表示把串列里的元素依次取出來(即遍歷)

上面這個代碼只能對串列進行讀取的操作,而有時候我們還需要對串列中的數進行改寫,那么我們就需要用到下面這種回圈結構
nums = [8, 15, 5, 4, 7, 20]
for i in range(len(nums)):
print(nums[i])
nums[i] = 100
print(nums)

這個我們可以從運行結果看到,不僅可以遍歷串列,還可以把串列中的數進行改寫
有時候我們不僅需要得到串列里的數,而且還需要知道它每個數對應的下標,那么就需要用到以下的代碼
nums = [8, 15, 5, 4, 7, 20]
for i, x in enumerate(nums):
print(i, x)

5.3 例題
例子01——將一顆骰子擲60000次,統計每一個點數出現的次數
import random
f1 = f2 = f3 = f4 = f5 = f6 = 0
for _ in range(60000):
i = random.randrange(1, 7)
if i == 1:
f1 += 1
elif i == 2:
f2 += 1
elif i == 3:
f3 += 1
elif i == 4:
f4 += 1
elif i == 5:
f5 += 1
else:
f6 += 1
print(f'1點出現的次數{f1},2點出現的次數{f2},3點出現的次數{f3},4點出現的次數{f4},5點出現的次數{f5},6點出現的次數{f6},')

上面這個需要一一打出,可能有點冗余了,所有我們可以用遍歷改進一下
import random
fs = [0] * 6
for _ in range(60000):
x = random.randrange(1, 7)
fs[x - 1] += 1
print(fs)
for i, value in enumerate(fs):
print(f'{i + 1}點搖出了{value}次')

你看,這樣就看上去舒服得多
例子02
輸入10個整數,計算平均值、方差、標準差和極差,并找出最大值和最小值
nums = []
for _ in range(10):
temp = int(input('請輸入資料: '))
nums.append(temp)
print(nums)
mean_value = sum(nums) / len(nums)
total = 0
for num in nums:
total += (num - mean_value) ** 2
# 方差 ---> variance ---> var
var_value = total / (len(nums) - 1)
# 標準差 ---> standard deviation ---> std / stdev
std_value = var_value ** 0.5
max_value, min_value = max(nums), min(nums)
print(f'均值: {mean_value}')
print(f'方差: {var_value}')
print(f'標準差: {std_value}')
print(f'極差(全距): {max_value - min_value}')

總結:遍歷很重要,一定要通過大量的練習來達到融會貫通,
rd deviation —> std / stdev
std_value = var_value ** 0.5
max_value, min_value = max(nums), min(nums)
print(f’均值: {mean_value}’)
print(f’方差: {var_value}’)
print(f’標準差: {std_value}’)
print(f’極差(全距): {max_value - min_value}’)
[外鏈圖片轉存中...(img-3cKuUoPX-1627184185374)]
### 總結:遍歷很重要,一定要通過大量的練習來達到融會貫通,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290271.html
標籤:python
上一篇:python進階練習之——算素數
