Python-字符串及列表操作-Day2
阿新 • • 發佈:2017-12-31
包括 -o 十六進制 tag 1.4 獲取 sta sele right
1.數據類型
1.1 變量引出數據類型
變量:用來記錄狀態
變量值的變化就是狀態的變化,程序運行的本質就是來處理一系列的變化
1.2 五大基本數據類型:
- 數字
- 字符串
- 列表
- 元組
- 字典
1.2.1 數字
二進制:0101010 #對應的調用bin()
八進制:1-7 #對應的調用oct()
十六進制:0-9abcdef #對應的調用hex()
- 整型
- 長整型
- 浮點
- 布爾
- 復數
1.2.2 整型
內置函數是:int()
int(a,base=b)
a是變量或者是"a(未定義變量)"
base=b b告訴計算機以什麽進制進行運算
一切皆對象
age = 10 ---> int(10)--->init--->調用
以上說明所有的變量最終都是通過對象來生成創建的
python3中int()已經沒有區分整型與長整型
1.2.3 布爾
True 和 False
1和0
1.2.4 浮點float
Python的浮點數就是數學中的小數
1.2.5 復數
復數由實數部分和虛數部分組成,一般形式為x+yj,其中的x是復數的實數部分,y是復數的虛數部分,這裏的x和y都是實數。
註意,虛數部分的字母j大小寫都可以,
1.3 + 2.5j == 1.3 + 2.5J
True
1.3 字符串
字符串的定義:
msg="hello world"
1.3.1 字符串模塊方法1:
#首字母大寫:
print(msg.capitalize())
#按照字符串是20個 居中顯示
print(msg.center(20,‘*‘))
#字符串中包含所選字符的計數 模式=(‘字符‘,start=1,end=2)
print(msg.count(‘l‘,1,3))
其中包含所選的字符是通過start和end字符位置確定的
#按照字符提取,[]內數字代表字符串的字符下標
print(msg[4])
#判斷一個字符串是否是以‘d‘結尾的
print(msg.endswith(‘d‘))
#指定空格的個數 expandtabs只是針對tab鍵或者空格鍵
msg1=‘a\tb‘#\t
print(msg1)
print(msg1.expandtabs(10))
#找到對應字符的索引
print(msg.find(‘d‘))
#沒有找到就直接輸出-1
print(msg.find(‘z‘))
print(msg.find(‘d‘,1,11))
print(‘{0},{1}‘.format(‘name‘,‘age‘))
print(‘{name}‘.format(name = "stone"))
1.3.2 字符串模塊方法2:
index
索引:查看指定字符的索引
isalnum:
判斷字符都是數字
msg3=‘123a‘
isalpha:
字符都是字母
isdecimal:
判斷是否是十進制數字
## isdigit(): ##
判斷是否是整型數字
isnumeric:
判斷是不是數字
isidentifier:
判斷字符串內是否包含關鍵字;
islower():
判斷字符串是否是小寫
isspace():
判斷字符串是否是空格
istitle():
是否是標題 單詞首字母必須是大寫的 其他的字符不能是大寫的,
isupper():
是否都是大寫
lhust():
左對齊
print(msg.ljust(10,‘*‘))
rjust():
右對齊
lower():
將所有的大寫轉換成小寫
upper():
將所有的小寫轉換成大寫
lstrip():
左邊去除空格
rstrip():
去除右邊的空格
maketrans():
將字符串進行替換 替換的字符串需要跟等長
yfill():
從右側填充
1.3.3 字符串常用的操作
- 移除空白 strip():去除空白
- 分割 split()
- 長度 len()
- 索引 msg[3]:字符索引
- 切片 msg[0:3]:字符串切片 msg[2:7:2]:按步長取
2. 運算符
2.1 算數運算
2.2 比較運算
2.3 賦值運算
2.4 位運算
註: ~ 舉例: ~5 = -6 解釋: 將二進制數+1之後乘以-1,即~x = -(x+1),-(101 + 1) = -110
按位反轉僅能用在數字前面。所以寫成 3+~5 可以得到結果-3,寫成3~5就出錯了
2.5 邏輯運算
and註解:
在Python 中,and 和 or 執行布爾邏輯演算,如你所期待的一樣,
但是它們並不返回布爾值;而是,返回它們實際進行比較的值之一。
在布爾上下文中從左到右演算表達式的值,如果布爾上下文中的所有
值都為真,那麽 and 返回最後一個值。
如果布爾上下文中的某個值為假,則 and 返回第一個假值
or註解:
使用 or 時,在布爾上下文中從左到右演算值,就像 and 一樣。
如果有一個值為真,or 立刻返回該值
如果所有的值都為假,or 返回最後一個假值
註意 or 在布爾上下文中會一直進行表達式演算直到找到第一個
真值,然後就會忽略剩余的比較值
and-or結合使用:
結合了前面的兩種語法,推理即可。
為加強程序可讀性,最好與括號連用,例如:
(1 and ‘x‘) or ‘y‘
2.6 成員運算
2.7 身份運算
3. for循環
寫程序最忌諱的就是重復代碼!!!
循環10次:
for i in range(10):
print(i)
run執行輸出:0 1 2 3 4 5 6 7 8 9 0
如果不想從0開始執行:
for i in range(1,10):
print(i)
run 執行結果:1 2 3 4 5 .. 9
range(1,10):表示從1開始一直到9;
range(2,7):表示從2開始一直到6;
3.1 猜年齡程序:
#!/usr/bin/env python
right_age = 60
for i in range(3):
age = int(input("print you guess age:"))
if age == right_age:
print("guess right!")
break
elif age > right_age:
print("guess smaller!")
else:
print("guess bigger!")
else: #如果for循環正常結束,就執行下面的語句
print("too many times!!!") # == exit("too many attempts")
3.2 for循環else語法測試:
for i in range(10):
print(i)
if i == 5:
print("5退出!")
break
else:
print("循環正常退出!")
執行結果
3.3 for循環-嵌套循環:
for i in range(10):
print(i)
for j in range(10):
if j < 6:
#break # 跳出當前層循環
continue #跳出當次循環,繼續下一次循環
print(i,j)
3.4 while 循環
死循環
判斷年齡,使用while+條件執行循環。
#!/usr/bin/env python
age=56
count = 0 # 計數
while count<3: # 判斷執行三次跳出loop
guess = input("guess age:")
if guess.isdigit():
guess = int(guess)
else:
continue
if guess == 56:
print("OK")
break
elif guess > age:
print("bigger")
else:
print("smaller")
count += 1
4. 列表
4.1 列表功能
定義一個列表:names = []
或者name = list(1,2,4)
names = []最終調用的就是list這個類
4.1.1 增 append
names.append()
例子:names.append("zheng")
print(names)
names.insert(2,"app")在指定的index之前插入
4.1.2 刪 del pop() remove()
刪除的三種方式:
names.remove()
names.pop()
del names[index]
names.remove("app"):刪除找到的第一個key
del names[3]:直接指定索引刪除
names.pop(3):指定索引刪除,不指定索引直接刪除最後一個。
4.1.3 改
names[1] = "wang" 直接指定索引替換成想要的
print(names)
4.1.4 查
print(name[-2]) #直接指定索引取出
print(name[0::2]) #按照步長取值
print(name[-3:]) #取最後三個元素
print(name[:3]) #取前三個元素
print(name.index("wang"))#取元素的下標
4.1.5 計數 count()
print("count",names.count("wang"))# 獲取
4.1.6 清空 clear()
name.clear() #清空列表
4.1.7 擴展合並 extend()
name.extend("liang") #作用是兩個列表的合並
name1=["hello","nihao"]
name2=["ca","haha"]
name1.extend(name2) #列表擴展
name1
[‘hello‘, ‘nihao‘, ‘ca‘, ‘haha‘]
4.1.8 排序 sort()
name.sort() #排序
4.1.9 反轉 reverse()
name.reverse() #反轉
python3中列表中必須統一 元素中字符串與數字不能混用
4.1.10 copy()
copy語法重新制定內存與原內容內存id存儲位置不同
4.1.11 列表的長度len()
name = [11,22,33]
print(len(name))
3
4.3 循環一個列表
for i in names:
print(i)
enunerate(name):
4.4 列表的判斷
len(a)
# 判斷一個列表的長度
val >=0 and val <len(a)
4.5 數據類型轉換內置函數匯總
5 Python整理-小記
5.1 執行腳本傳入參數
Python有大量的模塊,從而使得開發Python程序非常簡潔。類庫有包括三中:
Python內部提供的模塊
業內開源的模塊
程序員自己開發的模塊
Python內部提供一個 sys 的模塊,其中的 sys.argv 用來捕獲執行執行python腳本時傳入的參數
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print sys.argv
5.2 sys os 模塊小記
Python的強大之處在於他有非常豐富和強大的標準庫和第三方庫,幾乎你想實現的任何功能都有相應的Python庫支持,以後的課程中會深入講解常用到的各種庫,現在,我們先來象征性的學2個簡單的。
5.2.1 sys 模塊
sys
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print(sys.argv)
#輸出
$ python test.py helo world
[‘test.py‘, ‘helo‘, ‘world‘] #把執行腳本時傳遞的參數獲取到了
5.2.2 os模塊
os
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
os.system("df -h") #調用系統命令
5.2.3 完全結合一下
import os,sys
os.system(‘‘.join(sys.argv[1:])) #把用戶的輸入的參數當作一條命令交給os.system來執行
Python-字符串及列表操作-Day2