============CH19 homework ============
0 下面程序会输入什么?
def next():
print('我在next()函数里...')
pre()
def pre():
print('我在pre()函数里...')
next()
Answer:
我在next()函数里…
我在pre()函数里…
1 请问这个函数有返回值吗?
def hello():
print('Hello FishC!')
Answer: 有,返回 ‘None’
2 请问Python的return语句可以返回多个不同类型的值吗?
Answer: 可以,返回元组类型
3 目测以下程序会打印什么内容?
def fun(var):
var = 1314
print(var, end =' ')
var = 520
fun(var)
print(var)
Answer: 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())
Answer: ’ Baby I love you’
Practice
0 编写一个函数,判断传入的字符串是否为”回文联”(回文联即用回文形式写成的对联
既可以顺读也可以倒读。例如:上海自来水来自海上)
code
def HuiWen(str1):
length = len(str1)
flag = 0
for i in range(length):
if str1[i] == str1[length - 1 - i]:
flag = 1
else:
flag = 0
if flag == 1:
print(str1, '-> 是回文联')
else:
print(str1, '-> 不是回文联')
str1 = input('请输入一句话: ')
HuiWen(str1)
def HuiWenNew(string):
str1 = list(string)
str2 = reversed(str1)
if str1 == list(str2):
return '是回文联'
else:
return '不是回文联'
print(HuiWenNew('你爱我爱你'))
1 编写一个函数,分别统计传入字符串参数(可能不止一个参数)的英文字母、空格、数字
和其他字符的个数
程序执行结果如下图:
第一个字符串共有: 英文字母 13 个, 数字 0 个, 空格 2 个, 其他字符 2 个。
第二个字符串共有: 英文字母 17 个, 数字 0 个, 空格 5 个, 其他字符 2 个。
code
def countStr(*prams):
length = len(prams)
for i in range(length):
letters = 0
num = 0
space = 0
other = 0
for each in prams[i]:
if each.isalpha():
letters += 1
elif each.isdigit():
num += 1
elif each == ' ':
space += 1
else:
other += 1
print('第 %d 个字符串共有: 英文字母 %d 个, 数字 %d 个, 空格 %d 个, 其他字符 %d 个' % (i+1,
letters, num, space, other))
countStr('I love you!', 'Are you kidding me', '5201314 just for you')
# result
第 1 个字符串共有: 英文字母 8 个, 数字 0 个, 空格 2 个, 其他字符 1 个
第 2 个字符串共有: 英文字母 15 个, 数字 0 个, 空格 3 个, 其他字符 0 个
第 3 个字符串共有: 英文字母 10 个, 数字 7 个, 空格 3 个, 其他字符 0 个