Python 程序設計快速入門簡易教程
Python語言快速檢索
Python的語法簡潔,實用,假設你已有C++程序設計基礎,接下來跟着我走,瞬間學會Python語言,對於信息學競賽的學生可以用Python出隨機數據是非常方便的,如果感興趣,還可以做一些簡單的遊戲。
————因本人也是初學Python,難免有錯誤,敬請諒解和指出————
一些需要知道的事
1、Python區別大小寫
2、Python是通過縮進格式來定於語句塊: // 空的格數任意 但是一定要相同
3、Python裏的列表相當於C++裏的數組
4、Python裏的註釋符號是#
一個簡單的Python程序
首先我們來看一個排序程序
n=int(input()) #輸入一個字符串轉換程數字到n
tmp=[] #定義一個臨時的字符列表,相當於C++裏的數組
st=input() #輸入一個字符串到st
tmp=st.split() #將st字符串以空格分開成多個字符串放到tmp列表裏屈
a=[] #定義一個列表a用來存放數字
for x in tmp: #相當於for循環,循環次數取決於tmp裏元素的個數 //for(auto x:tmp)
a.append(int(x)) #將tmp裏的每個字符串轉換成數字存放在a裏
a.sort() #將列表a進行排序
for x in a: #相當於for循環,循環次數取決於a裏元素的個數
print(x,end=" ") #打印出每一個數字,後面接一個空格
Python的基本數據類型
整數類型(int),浮點型類型(float),字符串類型(str),布爾類型(bool)
可以用type(x)來查看x的數據類型
>>>x=10
>>>y=3.14
>>>z='hi'
>>>x,y,z,type(x),type(y),type(z)
(10, 3.14, 'hi', <class 'int'>, <class 'float'>, <class 'str'>)
此外還有list,tuple,dict,set等高級數據類型
Python的基本運算符
運算符
+ - * / 加減乘除 % 求餘 // 整除 ** 冪運算
優先級
1、 ** 2、 * / % // 3、+ -
其他:
1、Python裏有a+=1 沒有a++
2、字符串裏用 + 號來連接兩個字符串 ''abc'+'dac'的結果是'abcdac'
3、字符串裏用 * 號來複制N段,如果 'a'*3 的結果是'aaa'
Python的常用函數
1、int()函數,轉換成整型 float()函數 ,轉換成浮點數類型
str()函數,轉換成字符串 bool()函數,轉換成布爾類型
2、round()函數,四捨五入 round(x,y)保留y位小數
abs()函數,求絕對值
3、math模塊函數:需要import math 或者from math import *
ceil()向上取整,floor()向下取整,sqrt()平方根(// **0.5),radians()角度轉弧度
degrees()弧度轉角度,sin(),cos(),tan(),asin(),acos(),atan()
4、隨機模塊函數:需要import random或者from random import *
randint(x,y),生成x——y的一些隨機數,包含x,y
random()生成0——1之間的隨機小數,包含0,不包含1
5、時間模塊函數:需要import time
time()函數,或者當前時間戳,自197001010000起經過的秒數,是個浮點數
sleep()函數,sleep(x)表示暫停程序執行x秒
import 庫的用法
例如需要使用math模塊內sin()
1. import math //引用:math.sin()
2. from math import sin //引用直接用sin()
3. from math import * sin() //*表示引用庫中全部內容
分支語句
1、關係表達式:> < >= <= != ==
2、邏輯表達式:and or not
與C++不同的地方是可以寫成這樣: 10>x>3
3、單分支語句:
if 布爾表達式:
語句體
4、雙分支語句:
if 布爾表達式:
語句體
else:
語句體
5、多分支語句:
第一種方式
if 布爾表達式1:
語句體1
if 布爾表達式2:
語句體2
if 布爾表達式3:
語句體3
第二種方式
if 布爾表達式1:
語句體1
elif 布爾表達式2:
語句體2
elif 布爾表達式3:
語句體3
else:
語句體4
循環結構
1、語句結構
while 布爾表達式:
循環體
2、循環的干預:continue,break
字符串
1、格式化字符串
用%佔位符格式化字符串
>>> a=1
>>> b=2
>>>print('%d+%d=%d' %(a,b,a+b)
1+2=3
#佔位符有%d,%s,%f,小數點保留跟C語言一致 譬如:%.3f
用format()方法格式化字符串
"{}+{}={}".format(a,b,a+b)
"{a}+{b}={c}".format(a=a,b=b,c=a+b)
2、一些常用函數
ord()求字符的ASCII碼
chr()將數字轉換成對應的字符
isalpha()檢測一個字符串是否全部由字母組成
isdigit()檢測一個字符出是否全部由數字組成
isalnum()檢測一個字符串是否全部由字母和數字組成
islower()判斷一個字符串中的字母是否全部爲小寫
isupper()判斷一個字符串中的字母是否全部是大寫
istitle()判斷一個字符串中各英文單詞的首字母是否全部爲大寫
capitalize()用於將一個字符串中首個英文單詞的首字母變成大寫,其餘字母爲小寫
title()用於將一個字符串中各個英文單詞的首字母變成大寫,其餘字母爲小寫
upper()用於將一個字符串中的小寫字母變成大寫字母
lower()用於將一個字符串中的大寫字母變成小寫字母
replace()用於將一個字符串的某個字串替換爲另一個字符串,譬如:
>>>'hello,world'.replace('world','cs')
'hello,cs'
3、其他:
轉義字符串:
' 是 \' 這個時候用 “ 括字符串,譬如 " it \'s "
" 是 \" 這個時候用 ' 括字符串,譬如 ' a\"bc '
讀取字符串
用下標讀取,譬如: s='abc' 可以用s[0]讀取a
使用截取運算符讀取,s[start:end],譬如: s='abcde' 可以用 s[1:4]讀取bcd,
下標是0開始可以忽略start,也可以忽略end,讀取後面所有,如s[:3]或者s[1:]
用for...in 語句遍歷,譬如:
s='abc'
for c in s:
print(c)
使用in操作符可以判斷一個字符串是否包含在一個字符串中,如:‘ab’ in 'aabcd'
使用find操作符判斷一個字符串是否包含在一個字符串中,返回位置,如果沒有返回-1
列表的使用
列表類似C++中的數組,譬如生成一個由2~N自然數構成的數表,存放在a中
>>>a=list(range(2,n+1))
列表中的數據類型可以不一致,譬如
>>>a[]=[1,2,3.4,'a','c',['x','y']]
列表的一些操作
#列表的基本操作
>>>a[]=[1,2,3.4,'a','c']
>>>len(a) #列表大小
5
>>>print(a[1]) #用下標引用元素
2
>>>a[1:4] #用截取運算符[start:end]訪問列表,截取start到end-1
[2,3.4,'a']
>>>b=[1,2]
>>>b.append(4) #列表的元素添加,添加在列表最後
>>>b
[1,2,4]
>>>b.insert(3,1)
>>>b
[1,3,2,4]
>>>a.extend(b) #b列表添加到a列表後面
>>>a
[1,2,3.4,'a','c',1,3,2,4]
>>>x=[1,2]
>>>y=['a','b']
>>>x+y
[1,2,'a','b']
#用for...in語句遍歷列表
>>>for c in x:
print(c)
1
2
#結合enumertate()函數還可以列出下標
>>>for i,c in enumeratex(y):
print(i,c)
0 a
1 b
#結合range()遍歷全表
>>> for i in range(len(y)):
print(i,y[i])
0 a
1 b
#用in或者not in判斷元素是否在列表中
>>> 'a' in y
True
#用index()方法,從列表中找出第一個匹配元素的下標
>>>a.index(2)
1
#如果要全部找出,用for...in 結合enumerate()
>>>a=[1,2,2,1]
>>>for i,c in enumerate(a):
if c==2:
print(i,c)
1 2
2 2
#用pop()方法從列表中移除一個元素,移除最後一個元素
>>>a.pop()
>>>a
[1,2,2]
#用pop(x)方法從列表中指定位置x移除一個元素
>>>a.pop(0)
>>>a
[2,2]
#用remove()方法可以移除與目標相匹配的一個元素
>>>a=['aa','bb','cc']
>>>a.remove('bb')
>>>a
['aa','cc']
#用clear()清除列表中所有元素
>>>a.clear()
>>>a.len(a)
0
#用sort()方法排序
>>>a=[3,1,2]
>>>a.sort() #a.sort(reverse=True)是降序
>>>a
[1,2,3]
#用sorted()函數可以臨時排序
>>>a=[3,1,2]
>>>b=a.sorted()
>>>a
[3,1,2]
>>>b
[1,2,3]
#用reverse()可以讓列表反向
>>>a.reverse()
>>>a
[2,1,3]
#用copy()複製列表
>>>a=[1,2]
>>>b=a
>>>b
[1,2]
>>>b[0]=2
>>>a
[2,2]
>>>b
[2,2]
#由此可以看出以上a,b指向同一個列表,不是複製,複製要用copy()
>>>b=a.copy()
#這樣纔是不同的列表
#對列表*操作
>>>b*2
>>>b
[2,2,2,2]
#用max(),min()求列表最大最小值
>>>a=[1,2,3]
>>>max(a)
3
>>>min(a)
1
元組
Python提供一種與列表相近的數據結構叫元組,但是元組不能修改,用()表示
>>>a=(1,2,'a')
>>>a[1]
2
#用tuple()將列表轉換成元組
>>>a=[1,2,3]
>>>b=tuple(a)
>>>b
(1,2,3)
自定義函數
#求和
def f(a,b):
c=a+b
return c
a=input()
b=input()
print(f(a,b))
#定義全局變量
def f(a,b):
global c=a+b
return c
a=input()
b=input()
print(f(a,b))
print(c)
使用庫編程
常用內部庫有:math,time,random,turtle
外部庫很多:
如:Pillow,Matplotlib,PrettyTable,Tkinter,Easygui,Pygame,Pyglet,OpenCV
外部庫需要安裝:
c:>pip3 install pillow
win10下要用超級用戶
c:>pip3 install pillow --user