Python基礎:print & input & 變量 & 運算符 & Python數據類型 & 運算符與表達式python
#我註釋了一行
三個單引號'''括起來編程
''' 我能夠註釋多行 我能夠註釋多行 我能夠註釋多行 '''
三個雙引號"""括起來bash
""" 我能夠註釋多行 我能夠註釋多行 我能夠註釋多行 """
做用:打印到屏幕上一些信息dom
能夠接受多個字符串,用逗號分隔,遇到逗號會輸出一個空格編程語言
print(" It's a beautifu day", "Nice day", "my finished") print(18) print(10 + 8) print("10 + 8 =", 18)
做用:從外部獲取變量的值函數
等待輸入(阻塞),輸入的內容報在age變量裏spa
age = input("請輸入您的年齡:") print("age =", age)
概述:程序可操做的存儲區的名稱,程序運行期間能改變的數據,每一個變量都有特定的類型;把程序運行的中間結果臨時的存在內存裏,以便後續的代碼調用。code
做用:將不一樣類型的數據存儲到內存orm
變量的定義:變量名 = 初始值(爲了肯定變量的類型)對象
數據的存儲:變量名 = 數據值 (注意:變量在使用前必須先「定義」(即賦予變量一個值),不然會出現錯誤)
刪除變量:del 變量名 (刪除後變量沒法引用)
變量名只能是 字母 、數字或下劃線的任意組合
變量名的第一個字符不能是數字
變量的定義要具備可描述性
如下關鍵字不能聲明爲變量名:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
#駝峯體 AgeOfOldboy = 56 NumberOfStudents = 80 #下劃線 age_of_oldboy = 56 number_of_students = 80
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "wupeiqi" name2 = "alex"
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "taibai" name2 = name1
變量名爲中文、拼音
變量名過長
變量名詞不達意
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程當中不會改變的量
什麼是數據類型?
咱們人類能夠很容易的分清數字與字符的區別,可是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,「漢」是文字,不然它是分不清1和‘漢’的區別的,所以,在每一個編程語言裏都會有一個叫數據類型的東東,其實就是對經常使用的各類數據類型進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。
Python能夠處理任意大小的整數,固然包括負整數,在程序中的表示和數學的寫法同樣
num1 = 10 num2 = num1 print(id(num2)) 1998374864 # 連續定義多個變量 num3 = num4 = num5 = 1 print(num3, num4, num5) 1 1 1 #交互式賦值定義變量 num6, num7 = 6, 7 print(num6, num7) 6 7
布爾值就兩種:True,False。就是反應條件的正確與否。
真 1 True。
假 0 False。
浮點型由整數部分與小數部分組成,浮點數運算可能會有四捨五入的偏差
f1 = 1.1 f2 = 2.2 f3 = f1 + f2 print(f3) 3.3000000000000003
在Python中,加了引號的字符都被認爲是字符串!
>>> name = "Alex Li" #雙引號 >>> age = "22" #只要加引號就是字符串 >>> age2 = 22 #int >>> hometown = 'ShanDong' #單引號也能夠
那單引號、雙引號、多引號有什麼區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種狀況 你須要考慮單雙的配合
msg = "My name is Alex , I'm 22 years old!"
多引號什麼做用呢?做用就是多行字符串必須用多引號
msg = ''' 今天我想寫首小詩, 歌頌個人同桌, 你看他那烏黑的短髮, 好像一隻炸毛雞。 ''' print(msg)
print(int(1.9)) 1 print(float(1)) 1.0 print(int("123")) 123 print(float("12.3")) 12.3 #若是有其餘無用字符會報錯 print(int("abc")) print(int("123abc")) Traceback (most recent call last): File "H:/Python項目/day/file.py", line 2, in <module> print(int("abc")) ValueError: invalid literal for int() with base 10: 'abc' #只有做爲正負號纔有意義 print(int("+123")) 123 #print(int("12+3")) #無心義會報錯 print(int("-123")) -123
a1 = -10 a2 = abs(a1) print(a2) 10
a3 = 100 a4 = 9 print((a3>a4)-(a3<a4)) 1
print(max(1,2,3,4,5,6,7,8)) 8
print(min(1,2,3,4,5,6,7,8)) 1
print(pow(2, 5)) 32
round(x[,n])返回浮點數x的四捨五入的值,若是給出n值,則表明舍入到小數點後n位
print(round(3.456)) 3 print(round(3.556)) 4 print(round(3.456, 2)) 3.46 print(round(3.546, 1)) 3.5
import math # 向上取整 print(math.ceil(18.1)) 19 print(math.ceil(18.9)) 19 # 向下取整 print(math.floor(18.1)) 18 print(math.floor(18.9)) 18 # 返回整數部分與小數部分 print(math.modf(22.3)) (0.3000000000000007, 22.0) # 開方 print(math.sqrt(16)) 4.0
for i in range(1,10): print(i) for i in range(1,10,2): # 步長 print(i) for i in range(10,1,-2): # 反向步長 print(i)
從序列的元素中隨機挑選一個元素
import random print(random.choice([1, 3, 5, 7, 9])) print(random.choice(range(5))) #range(5)== [0,1,2,3,4] print(random.choice("Lee")) # "Lee" == ["L", "e", "e"] >打印結果: 1 0 e
產生一個1~100之間的隨機數
print(random.choice(range(100))) 91
從指定範圍內,按指定的基數遞增的集合中選取一個隨機數
# random.randrange([start,] stop[,step]) # start--指定範圍的開始值,包含在範圍內,默認是0 # stop--指定範圍的結束值,不包含在範圍內 # step--指定的遞增基數,默認是1 print(random.randrange(1,100,2)) 13 # 從0-99選取一個隨機數 print(random.randrange(100)) 61
隨機生成[0,1]之間的數(浮點數)
print(random.random()) 0.14728254253360773
隨機生成一個實數,它在[3,9]範圍
print(random.uniform(3,9)) 4.516309142130013
表達式:由變量、常量和運算符組成的式子
算術運算符和算術運算表達式
算術運算符
+ - * / % ** //
如下假設變量:a=10,b=20
如下假設變量:a=10,b=20
如下假設變量:a=10,b=20
邏輯與: and 邏輯與運算表達式:表達式1 and 表達式2 值: 若是表達式1的值爲真,表達式2的值也爲真,總體邏輯與運算表達式的值爲真 若是表達式1的值爲真,表達式2的值爲假,總體邏輯與運算表達式的值爲假 若是表達式1的值爲假,表達式2的值爲真,總體邏輯與運算表達式的值爲假 若是表達式1的值爲假,表達式2的值也爲假,總體邏輯與運算表達式的值爲假 【有一個爲假就爲假】 表達式1 and 表達式2 and 表達式3 and ...... and 表達式n num1 = 10 num2 = 20 if num1 and num2: print("&&&&&&&&&&&") &&&&&&&&&&&
邏輯或: or 邏輯或運算表達式:表達式1 or 表達式2 值: 表達式1的值爲真,表達式2的值爲真,邏輯或運算表達式爲真 表達式1的值爲真,表達式2的值爲假,邏輯或運算表達式爲真 表達式1的值爲假,表達式2的值爲真,邏輯或運算表達式爲真 表達式1的值爲假,表達式2的值爲假,邏輯或運算表達式爲假 【有一個爲真就爲真】 表達式1 or 表達式2 or 表達式3 or ...... or 表達式n num3 = 0 num4 = 1 if num3 or num4: print("||||||||||") ||||||||||
邏輯非: not 邏輯非運算表達式: not 表達式 值: 若是表達式的值爲真,總體邏輯非運算表達式的值爲假 若是表達式的值爲假,總體邏輯非運算表達式的值爲真 【顛倒黑白】 if not 0: print("++++++++++") ++++++++++
in:若是在指定的序列中找到值返回True,不然返回False
not in: 若是在指定的序列中沒有找到值返回True,不然返回False
is:判斷兩個標誌符是否是引用同一個對象
is not:判斷兩個標誌符是否是引用不一樣的對象
運算符優先級 ** ~ + - 正負號(一元加減) * / % // + - >> << & ~ | <= < > >= == != = %= += -= //= is in not in not in and or not
格式:
if 表達式: 語句...
邏輯:當程序執行到if語句時,首先計算「表達式」的值,若是「表達式」的值爲真,那麼執行if下的「語句」,若是「表達式」的值爲假,則跳過整個if語句繼續向下執行。
何爲真假?
假:0 0.0 '' None False 真:除了假就是真
num5 = 10 num6 = 20 if num5 == num6: num5 = 100 print("num5 =", num5) num5 = 10 -------------------------------- num5 = 20 num6 = 20 if num5 == num6: num5 = 100 print("num5 =", num5) num5 = 100
格式:
if 表達式: 語句1 else: 語句2
邏輯:當程序執行到if-else語句時,首先計算「表達式」的值,若是表達式的值爲真,則執行 「語句1」。執行完「語句1」跳出整個if-else語句。若是「表達式」的值爲假,則執行「語句2」。執行完「語句2」跳出整個if-else語句。
num = int(input()) if num % 2 == 0: print("是偶數") else: print("是奇數")
格式:
if 表達式1: 語句1 elif 表達式2: 語句2 elif 表達式3: 語句3 …… elif 表達式n: 語句n else: #無關緊要 語句e
邏輯:當程序執行到if-elif-else語句時,首先計算「表達式1」的值,若是「表達式1」的值爲真,則執行「語句1」,執行完「語句1」,則跳過整個if-elif-else語句。若是「表達式1」的值爲假,計算「表達式2」的值。若是「表達式2」的值爲真,則執行「語句2」,執行完「語句2」,則跳過整個if-elif-else語句。若是「表達式2」的值爲假,計算「表達式3」的值。如此下去直到某個表達式的值爲真才中止,若是沒有一個真的表達式,且有else,則執行「語句e」
age = int(input()) if age < 0: print("孃胎裏") if age >=0 and age <= 3: print("嬰兒") if age >=4 and age <= 6: print("兒童") if age >=7 and age <= 18: print("童年") if age >=19 and age <= 30: print("青年") if age >=31 and age <= 40: print("壯年") if age >=41 and age <= 50: print("中年") if age >=51 and age <= 100: print("老年") if age >=101 and age <= 150: print("老壽星") if age > 150: print("老妖怪")
格式:
for 變量名 in 集合: 語句
邏輯:按順序取「集合」中的每一個元素賦值給「變量」,在去執行語句。如此循環往復,直到取完「集合」中的元素截止
range([start,] end[, step])函數 列表生成器
start默認爲0,step默認爲1
功能呢:生成數列
a = range(10) print(a) range(0, 10) for x in range(10): print(x, end=" ") 0 1 2 3 4 5 6 7 8 9 for y in range(2, 20, 2): print(y, end=" ") 2 4 6 8 10 12 14 16 18
同時遍歷下標和元素
方法一: for index, m in enumerate([1,2,3,4,5]): #index, m = 下標,元素 print(index, m) 0 1 1 2 2 3 3 4 4 5 方法二: index = 0 for i in range(1,6): print(index, i) index += 1 0 1 1 2 2 3 3 4 4 5
格式:
while 表達式: 語句
邏輯:當程序執行到while語句時,首先計算「表達式」的值,若是「表達式」的值爲假,那麼結束整個while語句。若是「表達式」的值爲真,則執行「語句」,執行完「語句」再去計算「表達式」的值。若是「表達式」的值爲假,那麼結束整個while語句。若是「表達式」的值還爲真,則執行「語句」,執行完「語句」再去計算「表達式」的值。如此循環往復,知道表達式的值爲假才中止。
while 表達式: 語句1 else: 語句2 邏輯:在條件語句(表達式)爲False時執行else中的「語句2」 a = 1 while a <= 3: print("lee is a good man!") a += 1 else: print("very very good") print("you are right")
做用:
跳出for和while的循環
注意:只能跳出距離他最近的那一層循環
for i in range(10): print(i) if i == 5: break num = 1 while 1 <= 10: print(num) if num == 3: break num += 1 #注意:循環語句能夠有else語句,break致使循環截止,不會執行else下面的語句 else: print("lee is a good man")
做用:跳出當前循環中的剩餘語句,而後繼續下一次循環
注意:跳出距離最近的循環
for i in range(10): print(i) if i == 3: continue print("*") print("&") num = 0 while num < 10: print(num) if num == 3: num += 1 continue print("*") print("&") num += 1