Python學習筆記Day01
計算機
概述
- 計算機軟件(software):簡稱軟件,是一系列按照特定順序組織的計算機數據和指令的集合
- 編程語言(programming language):是一形式語言,它制定了一組可用於產生各種輸出的指令
- 計算機程序(computer program):簡稱程序,是由計算機執行的執行特定任務指令的集合
容量
1位 = 1bit
8bit = 1byte = 1字節
1024bytes = 1kbytes =1KB
1024KB = 1Million Bytes = 1MB = 1兆
1024MB = 1Gigabytes
1024GB = 1TB
1024TB = 1PB
什麼是python語言?
由荷蘭人Guido Van Rossum在1989年創建
是一種解釋型、面向對象、動態數據類型的高級程序設計語言
python語言的優點
-
簡單易用
-
大量的功能類庫支持
-
語言兼容性
-
跨平臺移植性
-
代碼免費開源
解釋器/編譯器
在linux中指定解釋器的路徑
#!/usr/bin/env python
# _*_ coding:uft-8 _*_
print("你好")
運行:解釋器 文件路徑
在Linux上有一種特殊的執行方法
給文件賦予一個可執行的權限
/a.py 自動去找文件的第一行=#!/usr/bin/env python a.py
編碼
交互式解釋器
-
編譯器(compile):把高級語言一次性翻譯成計算機能識別的機器語言的一種軟件
- 全部翻譯,再執行。執行速度快
-
解釋器(interpreter):把高級語言編寫的程序,在執行時,一行一行地翻譯成機器語言的一種軟件
- 邊執行邊翻譯,方便移植
初識編碼
- ASCII,英文,8位表示一個東西,2**8
- Unicode,萬國碼,32位表示一個東西,2**32
- utf-8,給Unicode壓縮,用盡量少的位數表示一個東西,以8個位爲單位。最多用4字節=32位表示。中文:3字節=24位表示
- utf-16:壓縮到最少2個字節
- gbk:
- gb2312:
python解釋器編碼
-
py2:ASCII
- 在文件頭部加上:# * coding:utf-8 *
-
py3:utf-8
文件編碼
-
建議:編寫文件時,保存文件要用utf-8格式
-
以什麼編碼保存,就要用什麼編碼方式打開(編碼+解碼一致),否則會出現亂碼
註釋
#:單行註釋
“”"
多行註釋
“”"
輸入
user_name = input("請輸入你的姓名:")
message = user_name + "燒餅"
print(message)
注意
-
input輸入得到的內容永遠是字符串
-
py版本區別
- py2:name = raw_input(“請輸入姓名”)
- py3:name = input(“請輸入姓名”)
練習
user_name = input("請輸入你的姓名:")
password = input("請輸入你的密碼:")
content = "你的用戶名是:" + user_name + ";你的密碼是:" + password
print(content)
輸出
print(你想要輸出的東西)
py版本區別
-
py2: print “你好” #print後接空格
-
py3: print(“你好”)
變量
命名規則
-
變量名只能包含:字母/數字/下劃線
-
數字不能開頭
-
不能是python的關鍵字
-
變量名區分大小寫
-
建議
- 見名知意:name=“Alex” age=18
- 用下劃線鏈接:Alex_dad=“張三丰”
- 補充:AlexDad=“張三丰” (駝峯式命名)
命名練習
練習01
age = 18
new_age = age + 1
print(new_age)
練習02
name = "Alex"
new_name = name + "sb"
print(new_name)
練習03
age = "666"
new_age = age + "666"
print(new_age)
練習04
age = "666"
new_age = age + 666
print(new_age) # 報錯
練習05
age = 6
new_age = age * 2
print(new_age)
練習06
name = "Alex"
new_name = name * 2
print(new_name)
練習07
age = 18
value = age >= 19
print(value)
數據類型
字符串string
- 單引號
- 雙引號
- 三引號
數字numbers
-
整型int
-
沒有小數部分
包含正數,負數,0-
二進制:以0b開頭的0、1串
a=0b110 print(a)
-
八進制:以0o開頭的0-7之間的數字串
a3=0o71 print(a3)
-
十六進制:以0x組成的由0-9、a-f構成的串
a4=0xfff8 print(a4)
-
-
-
浮點型float
a=.2 print(a)
-
科學計數法:e後面跟整數用來表示10的指數
height=1.84e2 print(height)
-
-
複數complex
a=5j b=7+2j print(a,b)
-
py2和py3的區別
- py2:超出範圍後python自動將其轉換成長整型long,整型除法只能保留整數位
- py3:只有int,整型除法保留所有
布爾型bool
- True
- False
列表list
元祖tuple
字典dict
集合set
None:表示爲沒有(通常用來佔位或提供空值,表示返回一個空)
數據類型之間的轉換
0/""/[]/()(零、空字符串、空列表、空元祖轉換爲布爾值時結果爲False,其他情況全爲True)
數字轉字符串
v1 = 666
v2 = str(v1)
print = (v2,type(v2))
字符串轉數字
v1 = "666"
v2 = int(v1)
print(v2,type(v2))
數字轉布爾值
v1 = 0
v2 = bool(v1)
print(v2)
字符串轉布爾值
v1 = ""
v2 = bool(v1)
print(v2)
布爾值轉換其他
v1 = True
v2 = int(v1)
print(v2)
v1 = True
v2 = str(v1)
print(v2)
特殊轉換
對於or,如果遇到這類寫法:
第一個值如果轉換成布爾值是真,則value=第一個值
第一個值如果轉換成布爾值是假,則value=第二個值
如果有多個or條件,則從左到右依次進行上述流程
value = 1 or 9
print(value)
value = 0 or 9
print(value)
value = 0 or ""
print("----",value,"----")
value = 0 or 9 or 8
print(value)
對於and,如果遇到這類寫法:
如果第一個值轉換成布爾值是True,則value=第二個值
如果第一個值轉換成布爾值是False,則value=第一個值
如果有多個and條件,則從左到右依次進行上述流程
v1 = 1 and 9
v2 = 1 and 0
v3 = 0 and 7
v4 = 0 and ""
v5 = 1 and 0 and 9
print(v1,v2,v3,v4,v5)
運算優先級:有括號先算括號,not>and>or,同一優先級則從左往右計算
v1 = 1 and 9 or 0 and 6
print(v1)
條件判斷
初級條件語句
讓用戶輸入性別,如果是男則輸出:再見;如果是女則輸出:來呀來呀
gender = input("請輸入性別:")
if gender == "男":
print("再見")
else:
print("來呀來呀")
elif 條件
讓用戶輸入性別,如果是男,則輸出:再見;如果是女,則輸出:來呀來呀;如果是人妖:找Ted去,他也是;否則:滾
gender = input("請輸入性別:")
if gender == "男":
print("再見")
elif gender == "女":
print(來呀來呀)
elif gender == "人妖":
print("找Ted去,他也是")
else:
print("滾")
print("end")
最簡單
gender = input("請輸入性別:") #女
if gender == "男":
print("再見")
條件判斷練習
練習01:讓用戶輸入一個數字,猜:如果數字>50,則輸出:大了;如果數字<=50,則輸出:小了
num = input("請輸入一個數字:")
number = int(num)
if number > 50:
print("大了")
else:
print("小了")
練習02:用戶名密碼登陸
user_name = input("請輸入用戶名:")
password = input("請輸入密碼:")
if user_name == "Ted" and password == "1234":
print("歡迎光臨")
else:
print("用戶名或密碼錯誤")
練習03:評分規則
A>=90
B>=80
C>=70
D 其他
用戶輸入成績,根據成績的不同顯示不同的級別
score = int(input("請輸入成績:"))
if score >= 90:
print("A")
elif score >=80:
print("B")
elif score >=70:
print("C")
else:
print("D")
練習04(if條件的嵌套):10086
message = """歡迎致電10086
1.話費查詢;
2.流量服務;
3.業務辦理;
4.人工服務"""
print(message)
index = int(input("請輸入你要選擇的服務:"))
if index == 1:
print("話費查詢")
elif index == 2:
print("流量服務")
elif index == 3:
content = """業務辦理
1.修改密碼;
2.更改套餐;
3.停機;"""
print("content")
value = int(input("請輸入要辦理的業務:"))
if value == 1:
print("修改密碼")
elif value == 2:
print("更改套餐")
elif value == 3:
print("停機")
else:
print("錯誤")
elif index == 4:
print("人工服務")
else:
print("輸入錯誤")
綜合習題
習題01
v1 =[11,22,33]
v2 =v1
v1.append(666)
print(v2)
習題02
v1 = [11,22,33]
v2 = v1
v1 = [1,2,3,4]
print(v2)
習題03
v1 = "alex"
v2 = v1
v1 ="ritian"
print(v2)
習題04
v = [1,2,3]
values = [11,22,v]
v.append(9)
print(values)
v = [1,2,3]
values = [11,22,v]
values[2].append(99)
print(v)
v = [1,2,3]
values = [11,22,v]
v = 99
print(values)
v = [1,2,3]
values = [11,22,v]
values[2] = 66
print(v)
習題05: ==和is有什麼區別?
v1 = [1,2,3]
v2 = [1,2,3]
print(v1 == v2) #比較的是值
print(v1 is v2) #比較的是內存地址
查看內存地址
v1 = [1,2,3]
v2 = [1,2,3]
print(id(v1),id(v2))