第019讲:函数:我的地盘听我的
0. 下边程序会输入什么?
def next(): print('我在next()函数里...') pre() def pre(): print('我在pre()函数里...') next()
me:我在next()函数里... 我在pre()函数里...
1. 请问以下这个函数有返回值吗?
>>> def hello(): print('Hello FishC!')
me:有。none
2.请问Python的return语句可以返回多个不同类型的值吗?
me:可以,可以返回一个元组来间接达到返回多个值
参考答案:
3.目测以下程序会打印什么内容:
def fun(var): var = 1314 print(var, end='') var = 520 fun(var) print(var)
me:1314,520
4. 目测以下程序会打印什么内容?
var = ' Hi ' def fun1(): global var var = ' Baby ' return fun2(var) def fun2(var): var += 'I love you' fun3(var) return var def fun3(var): var = ' 小甲鱼 ' print(fun1())
me:“Baby i LOVE YOU” global 可使变量变为全局变量
参考答案:
动手
0.编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
me:
def hui_wenlian(text): text1 = str(text) len_text1 = len(text1) list1=[] if len_text1 % 2 !=1 : print("这不是回文联") exit() for x in range(len_text1 // 2): n= -1 - x if text1[x] == text1[n]: m = "ture" list1.append(m) else: print("这不是回文联") exit() if "False" in list1: print("这不是回文联") else: print("这是回文联") hui_wenlian("上海自来水来自海上")
参考答案:
def palindrome(string): length = len(string) last = length-1 length //= 2 flag = 1 for each in range(length): if string[each] != string[last]: flag = 0 last -= 1 if flag == 1: return 1 else: return 0 string = input('请输入一句话:') if palindrome(string) == 1: print('是回文联!') else: print('不是回文联!')
方法二 运用字符串倒置
def palindrome(string): list1 = list(string) list2 = reversed(list1) if list1 == list(list2): return '是回文联!' else: return '不是回文联!' print(palindrome('上海自来水来自海上'))
1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
me:
def count(*params): for m in range(int(len(params))): text=params[m] a=b=c=d=0 for x in text: if x.isalnum(): a += 1 elif x.isalpha(): b += 1 elif x == " ": c += 1 else: d +=1 print("第" + str(m+1) + "个字符串共有:英文字母" +str(a)+ "个,数字" +str(b)+ "个,空格" +str(c)+ "个,其他字符" +str(d)+ "个。") count("I love fishc.com.","I love you, you love me.")
参考答案:
def count(*param): length = len(param) for i in range(length): letters = 0 space = 0 digit = 0 others = 0 for each in param[i]: if each.isalpha(): letters += 1 elif each.isdigit(): digit += 1 elif each == ' ': space += 1 else: others += 1 print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others)) count('I love fishc.com.', 'I love you, you love me.')