第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:可以,可以返回一个元组来间接达到返回多个值

  参考答案:

第019讲:函数:我的地盘听我的

 

 

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 可使变量变为全局变量

  参考答案:

第019讲:函数:我的地盘听我的

 

 

动手

0.编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)

第019讲:函数:我的地盘听我的

 

   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.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

第019讲:函数:我的地盘听我的

 

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

 

上一篇:L1-019 谁先倒 (15 分) — 团体程序设计天梯赛


下一篇:PTA L1-019 谁先倒(团体程序设计天梯赛)