python基礎總結1——註釋、變數、輸入輸出、字串操作、判斷語句、迴圈語句
之前主要用python2,寫python程式碼時有點不熟練,用到需要的部分再去查,感覺有必要總結一下基礎內容。
一、變數、註釋及python之禪
1,老版本開頭註釋解釋
在程式碼第一行寫入執行時的python直譯器路徑,編輯完後需要對此python檔案新增'x'許可權
老版本的python2,需要加 #coding=utf-8 python3就不用加了
2,註釋
單行註釋
# 這是個註釋
多行註釋
'''我是多行註釋,可以寫很多很多行的功能說明 這就是我牛X指出 哈哈哈。。。 '''
3,變數
python的變數名一半這樣寫:student_name
和java不同,不是駝峰式的,別的規則基本一樣。
變數有如下型別:
檢視型別:type(name)
4,字串相關操作
字串有相當多的方法,除了這些方法之外,我在正則表示式中也介紹過一些方法,可以用來處理字串。畢竟在計算機,所有的資料都可以看做字串,有了這些工具,處理文字資料會變得很方便。
合併字串(和java一樣用+) : "hello " + "world !"
\n :換行 \t:製表符
要確保字串末尾沒有空白,可使用方法rstrip(),兩端空白:strip(),左空白:lstrip()
其他:
(1)find與rfind,從左(右)找到字串的位置
name='name.txt'
name.find('name')
#輸出0
#利用rfind找到字尾名(rfind從右向左找):
index = name.rfind('.')
name[index:]
(2)index,同樣也有rindex
跟find()方法一樣,只不過如果str不在 mystr中會報一個異常.
(3)count 統計字串出現次數
name.count('txt')
name.count('txt',2,5) #可以加字串測試的起始位置和結束位置
(4)len 字串的長度
len(name)
(5)replace替換
name.replace('txt','py') # 注意,name並沒有改變,只是生成了新的字串
name.replace('txt','py',1) #這個數字表示可以替換幾次(從左往右數),資料清洗的時候回用到
(6)split 切割
name.split('.') # 對於單詞的統計,就可以先切割,然後統計單詞數
以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字串
mystr.split(str=" ", 2)
(7)capitalize
把字串的第一個字元大寫
mystr.capitalize()
(8)title
把字串的每個單詞首字母大寫
>>> a = "hello itcast" >>> a.title() 'Hello Itcast'
(9)startswith
name.startswith('na')
# 加一點關於True和False的說明,在python中,0表示False,非0表示True
(10)endswith
name.endswith('txt')
(11)name.upper()
全部字母大寫
(12)name.lower()
全部字母小寫
這個方法可以在統計單詞時用到,比如大寫的Hello和hello,經過處理後會被當做一個單詞來處理。包括判斷是否退出等操作,均可以用到。
(13)ljust
返回一個原字串左對齊,並使用空格填充至長度 width 的新字串
name.ljust(20)
(14)rjust
返回一個原字串右對齊,並使用空格填充至長度 width 的新字串
name.rjust(20)
(15)center
返回一個原字串居中,並使用空格填充至長度 width 的新字串
name.center(20)
(16)lstrip、rstrip、strip:清除空格
l清除左邊的,rstrip清除右邊的,strip兩邊都清
name=' 11233455 '
name.rstrip()
(17)partition,rpartition從右邊開始
把mystr以str分割成三部分,str前,str和str後
mystr.partition(str)
(18)splitlines
按照行分隔,返回一個包含各行作為元素的列表
mystr.splitlines()
(19)isalpha
如果 mystr 所有字元都是字母 則返回 True,否則返回 False
mystr.isalpha()
(20)isdigit
如果 mystr 只包含數字則返回 True 否則返回 False.
mystr.isdigit()
(21)isalnum
如果 mystr 所有字元都是字母或數字則返回 True,否則返回 False
mystr.isalnum()
(22)isspace
如果 mystr 中只包含空格,則返回 True,否則返回 False.
mystr.isspace()
(23)join
mystr 中每個字元後面插入str,構造出一個新的字串
mystr.join(str)
>>> myNames=['aaa','bbb','ccc']
>>> str = '='
>>> str.join(myNames)
'aaa=bbb=ccc'
(24)字串題目
給定一個字串aStr,返回使用空格或者'\t'分割後的倒數第二個子串
答案:
str='a kid like a \tgirl.He\tis a cute boy.'
a = str.split()
a[-2]
5,數字
數字的操作基本上和java是一樣的,有幾個地方需要注意一下:
(1)型別問題
age = 23
message = "Happy " + age + "rd Birthday!"
print(message)
這樣的語句是會報錯的:can only concatenate str (not "int") to str
這是一個型別錯誤。
message = "Happy " + str(age) + "rd Birthday!"
(2)整數相除
python2中,3/2 會打印出1
python3中,3/2 會打印出1.5
6,python之禪
輸入import this就可以檢視python之禪的一些內容了。
7,print格式化輸出
(1)%d格式化數字
age = 18 name = "xiaohua" print("我的姓名是%s,年齡是%d"%(name,age))
如果是有多個變數:
print('my age is %d, my height is %d'%(age,height))
(2)常用的格式符號
下面是完整的,它可以與%符號使用列表:
格式符號 |
轉換 |
%c |
字元 |
%s |
通過str() 字串轉換來格式化 |
%i |
有符號十進位制整數 |
%d |
有符號十進位制整數 |
%u |
無符號十進位制整數 |
%o |
八進位制整數 |
%x |
十六進位制整數(小寫字母) |
%X |
十六進位制整數(大寫字母) |
%e |
索引符號(小寫'e') |
%E |
索引符號(大寫“E”) |
%f |
浮點實數 |
%g |
%f和%e 的簡寫 |
%G |
%f和%E的簡寫 |
(3)檢視print幫助
help(print)
(4)print不換行
print(message,end="")
8,輸入
(1)python3輸入
input("請輸入使用者名稱")
注意input輸入的都是字串
(2)python2輸入
raw_input()
在python2中input,可以計算表示式,不安全,因此在python3中進行了捨棄。
9,運算子
(1)基本說明
語言的運算子大體相同,和java相比,有兩個算術運算子注意一下:
** |
冪 |
返回x的y次冪 a**b 為10的20次方, 輸出結果 100000000000000000000 |
運算子分為算術運算子、賦值運算子和複合賦值運算子
(2)字串重複
print('='*30)
輸出:==============================
10,型別轉換
常用的資料型別轉換
函式 |
說明 |
int(x [,base ]) |
將x轉換為一個整數 |
long(x [,base ]) |
將x轉換為一個長整數 |
float(x ) |
將x轉換到一個浮點數 |
complex(real [,imag ]) |
建立一個複數 |
str(x ) |
將物件 x 轉換為字串 |
repr(x ) |
將物件 x 轉換為表示式字串 |
eval(str ) |
用來計算在字串中的有效Python表示式,並返回一個物件 |
tuple(s ) |
將序列 s 轉換為一個元組 |
list(s ) |
將序列 s 轉換為一個列表 |
chr(x ) |
將一個整數轉換為一個字元 |
unichr(x ) |
將一個整數轉換為Unicode字元 |
ord(x ) |
將一個字元轉換為它的整數值 |
hex(x ) |
將一個整數轉換為一個十六進位制字串 |
oct(x ) |
將一個整數轉換為一個八進位制字串 |
舉例
a = '100' # 此時a的型別是一個字串,裡面存放了100這3個字元
b = int(a) # 此時b的型別是整型,裡面存放的是數字100
11,判斷語句
(1)結構
age=16
if age >5 :
print('>5')
elif age >10 :
print('>10' )
else :
print('<=5' )
(2)關係運算符
有兩點注意:
1、邏輯運算子中<>和!=均表示不等於
2、與java不同,邏輯運算子對應為:& --- and; | --- or; ! --- not
12,迴圈語句
(1)while:
i=0
sum = 0
while(i<100):
sum+=i
i +=1
(2)for 迴圈
for 臨時變數 in 列表或者字串等:
迴圈滿⾜條件時執⾏的程式碼
else:
迴圈不滿⾜條件時執⾏的程式碼
同樣在python的迴圈中也可以用break和continue