【前言】
做了一下感觉题量很多,所以精简了我觉得还挺有意思的题目放在上面,偷了个懒提高效率,大家见谅哈。
1. 请问分别使用什么BIF,可以把一个可迭代对象转换为列表、元祖和字符串?
答:
list([iterable]) 把可迭代对象转换为列表
tuple([iterable]) 把可迭代对象转换为元祖
str(obj) 把对象转换为字符串
只是码一波。
- 请问这个函数有多少个参数?
- def MyFun((x, y), (a, b)):
return x * y - a * b
答:答案是0,因为这种写法不合法。
我一开始有点懵逼,觉得应该是两个,思考了一下,觉得不对。因为形参应该是个变量,而元组是只读的不是变量,所以不能用元组传递,但是元组可以作为实参。寻找所有三位水仙花数
答:水仙花数就是数字每一位的立方之和等于这个数字本身。
def Narcissus():
num=0
for each in range(100,999):
temp=each
sum=0
num+=1
while temp:
sum+=(temp%10)**3
temp=temp//10
if each==sum:
print("%d: %d" %(num,each))
- 写一段函数判断字符串是否为回文联
答:判断回文联,其实就是比较字符串与其翻转过来是否一致就可以了,但是字符串貌似没有反转函数(我没看到。。。。。。如果有请提醒我),所以将其转化为list然后用reversed函数翻转后进行比较,但是注意reversed函数转换得到的结果是字符串,这个字符串的形式也不能直接与原字符串比较,故需再用list()转化后比较
def palindrome(string):
"""
对给定字符串判断是否为回文联
"""
list1=list(string)
if string==list(reversed(list1)):
print("yes!")
else:
print("nope")
str = input("please input a string")
palindrome(str)
下面在用递归的方式实现
def palindrome(string,start,end):
"""
对给定字符串判断是否为回文联(递归方法)
"""
if start>=end:
return 1
else:
if string[start]==string[end]:
return palindrome(string,start+1,end-1)
else:
return 0
str = input("please input a string:")
if palindrome(str,0,len(str)-1):
print("yes")
else:
print("nope")
与下一题相区别,注意两者返回值的而采取不同的访问方式
小甲鱼闭包这个例子给的很好,解释的很到位,所以就直接搬过来啦。