python函数的运用的习题总结

1. Write a Python program to reverse a string. 
Sample String : "1234abcd"
Expected Output : "dcba4321"

(该题是将字符串反转)

def string_nu(str2):
  str1 = ''
  dfg=len(str2)
  while dfg > 0:
    str1 += str2[dfg-1]
    dfg= dfg-1
  return str1
print(string_nu("12345asdf"))

打印结果

fdsa54321

思路是从后往前,当然这题也可以用递归方法处理

def func(s):
    if len(s) <1:
        return s
    return func(s[1:])+s[0]
s="123sad"
print(func(s))

打印结果

das321

递归法的关键步骤是:return func(s[1: ])+s[0] ,另外还有字符串的结束条件判断

2.一个Python函数,用于计算一个数字(非负整数)的阶乘。函数接受数字作为参数。

​
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
n=int(input("Input is : "))
print(factorial(n))

打印结果

Input is :  4
24

3.Write a Python function to check whether a number is in a given range.

def test_range(n):
  if n in range(3,9):
    print(" %s is right"%str(n))
  else:
    print("no")
test_range(5)

打印结果

5 is right

4 Write a Python function that accepts a string and calculate the number of upper case letters and lower case letters. 
Sample String : 'The quick Brow Fox'
Expected Output 
No. of Upper case characters : 3
No. of Lower case Characters : 12

def string_test(s):
    d={"UPPER_CASE":0, "LOWER_CASE":0}
    for c in s:
        if c.isupper():
           d["UPPER_CASE"]+=1
        elif c.islower():
           d["LOWER_CASE"]+=1
        else:
           pass
    print ("Original String : ", s)
    print ("No. of Upper case characters : ", d["UPPER_CASE"])
    print ("No. of Lower case Characters : ", d["LOWER_CASE"])

string_test('The quick Brow Fox')

打印结果

Original String :  ThequickBrowFox
No. of Upper case characters :  3
No. of Lower case Characters :  12

这道题判断字符串大小字母是调用了isupper()函数和islower()函数

5.编写一个Python程序来检测函数中声明的局部变量的数量

Write a Python program to detect the number of local variables declared in a function.

def vbn():
  x = 1
  i = 1
  y = 2
  z = 5
print(vbn.__code__.co_nlocals)

打印结果

6.

编写一个Python程序来访问函数内部的函数

def test(a):
        def add(b):
                nonlocal a
                return a+b
        return add
func= test(4)
print(func(4))

打印结果

8

nonlocal 适用于嵌套函数中内部函数修改外部变量的值

global适用于函数内部修改全局变量的值;global与nonlocal关键字

7.Write a Python function that takes a list and returns a new list with unique elements of the first list.
Sample List : [1,2,3,3,3,3,4,5]
Unique List : [1, 2, 3, 4, 5]

def unique_list(l):
  x = []
  for a in l:
    if a not in x:
      x.append(a)
  return x

print(unique_list([1,2,3,3,3,3,4,5])) 

打印结果

[1, 2, 3, 4, 5] 

这题用了Python List append()方法,append() 方法用于在列表末尾添加新的对象。

append()方法语法:

list.append(obj)  ,obj -- 添加到列表末尾的对象。

8.Write a Python program to print the even numbers from a given list.
Sample List : [1, 2, 3, 4, 5, 6, 7, 8, 9] 
Expected Result : [2, 4, 6, 8]

这题与第7题类似,代码如下:

def u_list(l):
    x = [ ]
    for z in l :
        if z % 2 == 0 :
            x.append(z)
    return x

print(u_list([1,2,3,4,5,6,7,8,9]))

打印结果

[2, 4, 6, 8]

9.编写一个Python函数,该函数将一个数字作为参数,并检查该数字是否为素数。

注意:素数(或素数)是一个大于1的自然数,除了1和本身没有正因数。

​
def v_ans(l):
    if l == 1:
        return False
    elif l == 2:
        return True
    else:
        for x in range(2,l):
            if l % x == 0:
                return False
        return  True

print(v_ans(3))

​

打印结果

​
True

10.编写一个Python函数,检查传递的字符串是否回文。

def u_string(var):
    left_var = 0
    right_var = len(var) - 1
    while right_var >= left_var:
        if not var[left_var] == var[right_var]:
            return False
        left_var +=1
        right_var -=1
    return True

print(u_string("acbcdcbca"))

打印结果

True

11.编写一个Python函数来检查字符串是否为pangram。

注意:Pangrams是指含有至少一次字母表中每个字母的单词或句子。

import string, sys
def ispangram(str1, alphabet=string.ascii_lowercase):
    alphaset = set(alphabet)
    return alphaset <= set(str1.lower())
 
print ( ispangram('The quick brown fox jumps over the lazy dog')) 

打印结果

True

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值