python序列及函數入門認識:
0. 我們根據列表、元組和字符串的共同特點,把它們三統稱為什么?
序列,因為他們有以下共同點:
1)都可以通過索引得到每一個元素
2)默認索引值總是從0開始(當然靈活的Python還支持負數索引)
3)可以通過分片的方法得到一個范圍內的元素的集合
4)有很多共同的操作符(重復操作符、拼接操作符、成員關系操作符)
1. 請問分別使用什么BIF,可以把一個可迭代對象轉換為列表、元組和字符串?
list([iterable]) 把可迭代對象轉換為列表
tuple([iterable]) 把可迭代對象轉換為元組
str(obj) 把對象轉換為字符串
序列的常見內置方法(BIF):
List()
Tuple()
Len()
Str()
Sorted()
List(reversed(tuple2)) //翻轉
List(enumerate(tuple2)) //枚舉
Zip(a,b)合並a.b各個位置上的元素為元組集合
2、所謂迭代,是重復反饋過程的活動,其目的通常是為了接近並到達所需的目標或結果。每一次對過程的重復被稱為一次“迭代”,而每一次迭代得到的結果會被用來作為下一次迭代的初始值。
3、你有聽說過DRY嗎?
DRY是程序員們公認的指導原則:Don't Repeat Yourself.
快快武裝你的思維吧,拿起函數,不要再去重復拷貝一段代碼了!
4、都是重復一段代碼,為什么我要使用函數(而不使用簡單的拷貝黏貼)呢?
使用函數:
0) 可以降低代碼量(調用函數只需要一行,而拷貝黏貼需要N倍代碼)
1) 可以降低維護成本(函數只需修改def部分內容,而拷貝黏貼則需要每一處出現的地方都作修改)
2) 使序更容易閱讀
5、實現兩個數的最大公約數的函數代碼:
def gcd(x,y):
i=0
a=min(x,y)
b=max(x,y)
while i=0:
if b%a==0:
return a
i=1
else:
a=b%a
b=a
i=0
temp=input("請輸入兩個數:",end=" ")
x=input("x=",end="")
y=input("y=")
print("x和y的最大公約數為:",gcd(x,y))
1、 實現十進制到二進制轉換的函數:
def bin2(x):
i=0
q=""
while i==0:
a=x%2
b=x//2
q=q+str(a)
if b!=0:
x=b
i=0
else:
break
xx=list(reversed(q))
yy=len(xx)
m=0
qq=""
while m<=yy-1:
qq=qq+xx[m]
m=m+1
qqq="ob"+qq
return qqq
while True:
temp=input("輸入一個數字:")
temp=int(temp)
print("該數據的二進制表示為:",bin2(temp))