原创:XIAO油菜花
学习进度记录:
《零基础入门学习Python》P20:我的地盘听我的
《Python开发入门与爬虫项目实战》:Python中的函数:递归查找
课后思考
- 0.下边程序会输出什么?
def next():
print('我在next()函数里...')
pre()
def pre():
print('我在pre()函数里...')
next()
- 1.请问以下这个函数有返回值吗?
>>> def hello():
print('Hello World!')
- 2.请问Python的return语句可以返回多个不同类型的值吗?
- 3.目测以下程序会打印什么内容:
def fun(var):
var = 1314
print(var, end='')
var = 520
fun(var)
print(var)
- 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 = ' XIAO油菜花'
print(fun1())
答案:
- 0.会输出:
我在next()函数里...
我在pre()函数里... - 1.有返回值‘None’
- 2.可以,默认用逗号隔开,是以元祖的形式返回,你当然也可以用列表包含起来返回
- 3.会打印:
1314520 - Baby I love you
实战:
0.编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)
def palindrome(string):
#计算字符串的长度
length = len(string)
#last代表字符串的最后一个字符的索引
last = length-1
#对字符串长度进行2的地板除法
length //= 2
#设置默认flag为1
flag = 1
#循环字符串中的每一个字符
for each in range(length):
#如果第1个字符不等于最后一个的字符
if string[each] != string[last]:
flag = 0
#做一次循环,最后一个字符的index向前移一位,而循环是递增的。
#所以上一个判断语句判断的回文结构
last -= 1
#将最后的flag值返回
return flag
string = input('请输入一句话:')
if palindrome(string) == 1:
print('是回文联!')
else:
print('不是回文联!')
方法二:
def palindrome(string):
list1 = list(string)
#将list1倒置
list2 = reversed(list1)
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
string = input('请输入一句话:')
print(palindrome(string))
1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
#注意收集参数的运用
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
#注意字符串格式化的使用:%d格式化整数
#用\将长句连起来
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,\
其他字符 %d 个。' % (i+1, letters, digit, space, others))
运行效果
如果你关注了我,希望你监督我,鼓励我,与我一起学习,一起成长!❤
网友评论