【Python】函数练习题

编程:设计一个函数func(*a),该函数实现打印行数为n(奇数)的菱形。

运行后若输入:5
结果输出:

  *
 ***
*****
 ***
  *
# 方法一
def func(a):
    x = a//2+1
    i = 1
    while i<=x:
        print(" "*(x-i),end="")
        print("*"*(i*2-1))
        i+=1
    j = i-2
    while j>0:
      print(" "*(x-j),end="")
      print("*"*(j*2-1))
      j-=1
      
# 方法二
def func2(a):
  x=n//2+1
  for i in range(1,n+1,2)
    print(('*'*i).center(n))
  for i in reversed(range(1,n-1,2)):
    print(('*'*i).center(n))
    
n = eval(input())
func(n)
#func2(n)

【Python】center()居中填充

编程:设计一个函数func(s),该函数实现统计一行字符串中的英文字母、数字、空格和其他字符个数。

运行后若输入:

a1 &!%b2

结果输出:

(2,2,1,3)

送行后若输入:

Python3

则结果输出:

(6,1,0,0)
#方法一:
def func(s):
   a = 0
   b = 0
   c = 0
   d = 0
   for i in s:
       if i>='A' and i<='Z':
           a+=1
       elif i>='a' and i<='z':
           a+=1
       elif i>='0' and i<='9':
           b+=1
       elif i==' ':
           c+=1
       else:
           d+=1
   return (a,b,c,d)

#方法二:
def func2(s):
   a = 0
   b = 0
   c = 0
   d = 0
   for i in s:
       if i.isalpha():
           a+=1
       elif i.isnumeric():
           b+=1
       elif i.isspace():
           c+=1
       else:
           d+=1
   return (a,b,c,d)

s = input()
print(func(s))
print(func2(s))
输入任意个字符串,分别实现从小到大输出和从大到小输出。

运行后若输入:

1 7 2

贝结果输出:

1 2 7 & 7 2 1

运行后若输入:

5 2.8 1

贝结果输出:

1 2.8 5 & 5 2.8 1
def func(a):
   s = a.split()
   s.sort()
   for i in s:
      print(i,end=" ")
   print("&",end=" ")
   #s.sort(reverse=True)
   #for i in s:
   for i in reversed(s):
      print(i,end=" ")
      
a = input()
func(a)
打印田字格

输入:2
结果输出:

在这里插入图片描述
输入:3
结果输出:
在这里插入图片描述

def draw(n):
  a,b,c,d = '+','-','|',' '
  for i in range(n):
    print(a,end='')
    print(b*4,end='')
  print(a)
  for i in range(n):
    for j in range(n):
      print(c,end='')
      print(d*4,end='')
    print(c)
    for j in range(n):
      print(c,end='')
      print(d*4,end='')
    print(c)
    for i in range(n):
      print(a,end='')
      print(b*4,end='')
    print(a)
def draw2(n):
  line = 3*n+1
  for i in range(1,line+1):
    if i%3 == 1:
      print("+----"*n,end="")
      print("+")
    else:
      print("|    "*n,end="")
      print("|")
n = eval(input())
#draw(n)
draw2(n)
编程:定义func(d, n=“f1”)函数和调用该函数的相关代码。 func (…)实现两种日期格式的输出,若n指定“f1”格式,则按“年-月-田”格式输出;若n指定“12”格式,则按“月 日,年”英文格式输出;若n没有指定格式(默认),则按f1格式输出。程序运行后首先按“年 月 日”格式输入日期,并可能输入“f1”或“12”以便指定要输出的日期格式,若没有指定要输出的日期格式,则按默认格式输出。

运行后若输入:2020 10 8
则输出结果:2020-10-08
运行后若输入:2021 2 16 f2
则输出结果:February 16,2021

from datetime import datetime
def func(d,n="f1"):
  if n=="f1":
    print(d.strftime("%Y-%m-%d"))
  if n=="f2":
    print(d.strftime("%B %d,%Y"))
ls = input().split()
d = datetime(int(ls[0]),int(ls[1]),int(ls[2]))
if len(ls)==3:
    func(d)
else:
    func(d,ls[3])

编程:设计一个函数func(*a),该函数实现对任意个整数求平均并返回。
运行后若输入:2 4
则结果输出:3.0
运行后若输入:1 2 3
则结果输出:2.0

def func(*a):
  sum=0
  for i in a:
    sum+=eval(i)
  return sum/len(a)
ls = input().split()
print(func(*ls))

编程:设计一个函数fuxe (m),该凶数使用递归方法实现将一个十进制整数转换为二进制字符串并返回。
运行后若输入:250
则结果输出:11111010
运行后若输入:10
则结果输出:1010

def func(n):
  s = ''
  if n==0:
    return s
  else:
    s = func(n//2)
    return s+str(n%2)
    
#不使用递归    
def func2(n):
  s = bin(n)
  return s[2:]
n = eval(input())
print(func(n))
#print(func2(n))
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值