1. 程式人生 > >Python學習-基礎篇1

Python學習-基礎篇1

什麽 final 相關 pass 所在 正常 語言 技術分享 ash

一、變量:

1)變量定義規範:

#1. 變量名只能是 字母、數字或下劃線的任意組合
#2. 變量名的第一個字符不能是數字
#3. 關鍵字不能聲明為變量名[‘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‘]

2)變量格式:

變量名=值
例子:name=‘zhenxi‘

3)定義方式:

#駝峰體
AgeOfOldboy = 56
NumberOfStudents = 80
#下劃線(推薦使用)
age_of_oldboy = 56
number_of_students = 80

4)定義變量名不好的方式

#1. 變量名為中文、拼音
#2. 變量名過長
#3. 變量名詞不達意

5)定義變量會有:id,type,value

復制代碼
#1 等號比較的是值(value),
#2 is比較的是id(該值在內存中的所在位置)

#強調:
#1. id相同,意味著type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x=‘Info zhenxi:18‘


>>> y=‘Info zhenxi:18‘
>>> id(x)
4376607152
>>> id(y)
4376607408
>>>
>>> x == y
True
>>> x is y
False

6)常量

常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
舉例,假如一個人的年齡會變,那這就是個變量,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量
AGE_OF_OLDBOY = 56

#ps:在c語言中有專門的常量定義語法,const int count = 60

;一旦定義為常量,更改即會報錯


二、文件頭:
正常的腳本文件都會有一個文件頭,python也不例外:
像shell的文件頭是:#!/bin/bash
python的文件頭是:
#!/usr/bin/env python
# -*- coding: utf-8 -*-


三、基本數據類型:
數字型分類:
#int整型
定義:age=10 #age=int(10)
用於標識:年齡,等級,身份證號,qq號,個數

#float浮點型
定義:salary=3.1 #salary=float(3.1)
用於標識:工資,身高,體重,

其他數字類型介紹:
#int(整型)
在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
#long(長整型)
跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
註意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。
註意:在Python3裏不再有long類型了,全都是int
>>> a= 2**64
>>> type(a) #type()是查看數據類型的方法
<type ‘long‘>
>>> b = 2**60
>>> type(b)
<type ‘int‘>

#complex復數型
>>> x=1-2j
>>> x.imag
-2.0
>>> x.real
1.0


字符串:

#在python中,加了引號的字符就是字符串類型,python並沒有字符類型。
定義:name=‘egon‘ #name=str(‘egon‘)
用於標識:描述性的內容,如姓名,性別,國籍,種族


#那單引號、雙引號、多引號有什麽區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種情況 你需要考慮單雙的配合
msg = "My name is Egon , I‘m 18 years old!"

#多引號什麽作用呢?作用就是多行字符串必須用多引號
msg = ‘‘‘
今天我想寫首小詩,
歌頌我的同桌,
你看他那烏黑的短發,
好像一只炸毛雞。
‘‘‘
print(msg)

#數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。
>>> name=‘egon‘
>>> age=‘18‘
>>> name+age #相加其實就是簡單拼接
‘egon18‘
>>> name*5
‘egonegonegonegonegon‘


#註意1:字符串相加的效率不高
字符串1+字符串3,並不會在字符串1的基礎上加字符串2,而是申請一個全新的內存空間存入字符串1和字符串3,相當字符串1與字符串3的空間被復制了一次,

#註意2:只能字符串加字符串,不能字符串加其他類型

列表:

#在[]內用逗號分隔,可以存放n個任意類型的值
定義:students=[‘egon‘,‘alex‘,‘wupeiqi‘,] #students=list([‘egon‘,‘alex‘,‘wupeiqi‘,])
用於標識:存儲多個值的情況,比如一個人有多個愛好

#存放多個學生的信息:姓名,年齡,愛好
>>> students_info=[[‘egon‘,18,[‘play‘,]],[‘alex‘,18,[‘play‘,‘sleep‘]]]
>>> students_info[0][2][0] #取出第一個學生的第一個愛好
‘play‘

字典:

#為何還要用字典?
存放一個人的信息:姓名,性別,年齡,很明顯是多個值,既然是存多個值,我們完全可以基於剛剛學習的列表去存放,如下
>>> info=[‘egon‘,‘male‘,18]
定義列表的目的不單單是為了存,還要考慮取值,如果我想取出這個人的年齡,可以用
>>> info[2]
18
但這是基於我們已經知道在第3個位置存放的是年齡的前提下,我們才知道索引2對應的是年齡
即:#name, sex, age
info=[‘egon‘,‘male‘,18]
而這完全只是一種假設,並沒有真正意義上規定第三個位置存放的是年齡,於是我們需要尋求一種,即可以存放多個任意類型的值,又可以硬性規定值的映射關系的類型,比如key=value,這就用到了字典
#在{}內用逗號分隔,可以存放多個key:value的值,value可以是任意類型
定義:info={‘name‘:‘egon‘,‘age‘:18,‘sex‘:18} #info=dict({‘name‘:‘egon‘,‘age‘:18,‘sex‘:18})
用於標識:存儲多個值的情況,每個值都有唯一一個對應的key,可以更為方便高效地取值
字典相關的嵌套、取值

布爾:

復制代碼
#布爾值,一個True一個False
#計算機俗稱電腦,即我們編寫程序讓計算機運行時,應該是讓計算機無限接近人腦,或者說人腦能幹什麽,計算機就應該能幹什麽,人腦的主要作用是數據運行與邏輯運算,此處的布爾類型就模擬人的邏輯運行,即判斷一個條件成立時,用True標識,不成立則用False標識
>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True

接下來就可以根據條件結果來幹不同的事情了:
if a > b
print(a is bigger than b )

else
print(a is smaller than b )
上面是偽代碼,但意味著, 計算機已經可以像人腦一樣根據判斷結果不同,來執行不同的動作。
復制代碼

《//*重點*\\》:

#1.可變類型:在id不變的情況下,value可以變,則稱為可變類型,如列表,字典

#2. 不可變類型:value一旦改變,id也改變,則稱為不可變類型(id變,意味著創建了新的內存空間)

四、格式化輸出

程序中經常會有這樣場景:要求用戶輸入信息,然後打印成固定的格式

比如要求用戶輸入用戶名和年齡,然後打印如下格式:

My name is xxx,my age is xxx.

很明顯,用逗號進行字符串拼接,只能把用戶輸入的名字和年齡放到末尾,無法放到指定的xxx位置,而且數字也必須經過str(數字)的轉換才能與字符串進行拼接。

這就用到了占位符,如:%s、%d

#%s字符串占位符:可以接收字符串,也可接收數字
print(‘My name is %s,my age is %s‘ %(‘egon‘,18))
#%d數字占位符:只能接收數字
print(‘My name is %s,my age is %d‘ %(‘egon‘,18))
print(‘My name is %s,my age is %d‘ %(‘egon‘,‘18‘)) #報錯

#接收用戶輸入,打印成指定格式
name=input(‘your name: ‘)
age=input(‘your age: ‘) #用戶輸入18,會存成字符串18,無法傳給%d

print(‘My name is %s,my age is %s‘ %(name,age))

#註意:
#print(‘My name is %s,my age is %d‘ %(name,age)) #age為字符串類型,無法傳給%d,所以會報錯

練習:用戶輸入姓名、年齡、工作、愛好 ,然後打印成以下格式
------------ info of Egon -----------
Name : Egon
Age : 22
Sex : male
Job : Teacher
------------- end -----------------

代碼:
# name=input(‘your name:‘)
# age=input(‘your age:‘)
# sex=input(‘sex:‘)
# job=input(‘your jos:‘)
#
# print(
# ‘‘‘
# ------------ info of %s -----------
# Name : %s
# Age : %s
# Sex : %s
# Job : %s
# ------------- end -----------------
# ‘‘‘ %(name,name,age,sex,job)
# )

基本運算符

計算機可以進行的運算有很多種,可不只加減乘除這麽簡單,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學習算數運算、比較運算、邏輯運算、賦值運算

算數運算

以下假設變量:a=10,b=20

技術分享圖片

比較運算

以下假設變量:a=10,b=20

技術分享圖片

賦值運算

以下假設變量:a=10,b=20

技術分享圖片

邏輯運算

技術分享圖片

>>> True or Flase and False
True
>>> (True or Flase) and False
False

五、流程控制:

if...else格式:
if 條件:
執行【】
else:
執行【】


例子:
1 如果:女人的年齡>30歲,那麽:叫阿姨


age_of_girl=31
if age_of_girl > 30:
print(‘阿姨好‘)
2 如果:女人的年齡>30歲,那麽:叫阿姨,否則:叫小姐


age_of_girl=18
if age_of_girl > 30:
print(‘阿姨好‘)
else:
print(‘小姐好‘)


if...elif格式:
if 條件:
執行【】
elif 條件:
執行【】
...
else:
...


例子:
如果:成績>=90,那麽:優秀


如果成績>=80且<90,那麽:良好


如果成績>=70且<80,那麽:普通


其他情況:很差




score=input(‘>>: ‘)
score=int(score)


if score >= 90:
print(‘優秀‘)
elif score >= 80:
print(‘良好‘)
elif score >= 70:
print(‘普通‘)
else:
print(‘很差‘)


while 條件循環,語法如下:


while 條件:
# 循環體

# 如果條件為真,那麽循環體則執行,執行完畢後再次循環,重新判斷條件。。。
# 如果條件為假,那麽循環體不執行,循環終止


例子:
#打印0-10
count=0
while count <= 10:
print(‘loop‘,count)
count+=1
#打印0-10之間的偶數
count=0
while count <= 10:
if count%2 == 0:
print(‘loop‘,count)
count+=1


#打印0-10之間的奇數
count=0
while count <= 10:
if count%2 == 1:
print(‘loop‘,count)
count+=1







Python學習-基礎篇1