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))