Python 函数定义与使用练习题

第一题:

编写函数,判断一个数是否为素数?并求出所有四位数的素数

import math
def sushu(m):
    k = int(math.sqrt(m))
    for i in range(2, k+2):
        if m % i == 0:
            break
    if i == k+1:
        return True
    else:
        return False

a=int(input('请输入一个数:'))
if a==1:
    print('1既不是质数也不是合数')
else:
    if sushu(a)==True:
        print(a,'是素食')
    else:
        print(a,'是合数')

print('四位数素数为:')
n=0
for i in range(1001,10000,2):
    if sushu(i)==True:
        if n%30==0:
            print()
        print(i,end=' ')
        n=n+1

第二题

在屏幕上输出 m 行 n 列的由某种符号构成的空心矩形

def dyjz(m,n,a):
    for i in range(1,m+1):
            if i==1 or i==m:
                print(a*n)
            else:
                print(a+' '*int((n-2))+a)

m= int (input("输入打印行数:"))
n= int (input("输入打印列数:"))
a= str (input("要打印的字符:"))
dyjz(m,n,a)

第三题

生成一个随机小数6*6的矩阵,按第一列升序、第四列降序排序

import random

r=[]
print('原始矩阵')
for i in range(6):
     s=[]
     for j in range(6):
         s.append(round(random.uniform(1,10),2))
     r.append(s)
for i in r:
   print(i)

print('排序后矩阵')
r_new=sorted(r,key=lambda x:[x[0],-x[3]])
for i in r_new:
   print(i)

相关课后习题使用代码

1。 编写一个函数判断一个数是否为素数,并通过调用该函数求出所有三位数的素数。

2.编写一个函数,求满足以下条件的最大的n值:
第二题图
3.编写一个函数multi(),参数个数不限,返回所有参数的乘积。

4.编写一个函数,功能是求两个正整数m和n的最大公约数。

5.编写一个函数,调用该函数能够打印一个由指定字符组成的n行金字塔。其中,指定打印的字符和行数n分别由两个形参表示。

6. 十 进制转二进制

7。 回文字符串

参考代码


print('-----------第1题-----------')

import math
def sushu(m):
    k = int(math.sqrt(m))
    for i in range(2, k+2):
        if m % i == 0:
            break
    if i == k+1:
        return True
    else:
        return False

n=0
for i in range(101,1000,2):
    if sushu(i)==True:
        if n%10==0:
            print()
        print(i,end=' ')
        n=n+1

print('\n-----------第2题-----------')

def Maxn():
   sum=0
   n=0
   while sum<1000:
      n=n+1
      sum=sum+n*n
   return n-1

print('满足条件的最大n值为:',Maxn())


print('-----------第3题-----------')

def multi():
        str=input("输入要计算的参数:")
        c=1
        for item in str.split():
            c=c*int(item)
        print('所输入参数的乘积为:',c)

multi()


'''
本部分为批注

def multi():
    try:
        str=input("输入要计算的参数,用空格隔开")
        c=1
        for item in str.split():
        #通过for循环可根据特定符号简洁分割字符串,split()无参默认根据空格切割
            c=c*int(item)#切割出来的是字符串,需强转成int型,便于运算
        print(c)
    except:
        print("error")

multi()


def multi(*num):
   sum=1    
   for i in num :       
      sum=sum*i     
   return sum

print(multi(2,3,4))



def revser(s):
   return s[::-1]   
print ('请输入字符串:',end='')
m=input()
print(revser(m))

'''


print('-----------第4题-----------')

def gys(m, n):
   if m < n:
      m, n = n, m 
   while n != 0:
      temp = m % n
      m = n
      n = temp
   return m

a=int(input('请输入m:'))
b=int(input('请输入n:'))
print('m和n的最大公约数是:',gys(a,b))

print('-----------第5题-----------')

def jzt(m,n):
    for i in range(1,n):
        print(' '*(20-(i-1)),m*(2*i-1))

a= int (input("输入打印行数:"))
b= str (input("要打印的字符:"))
jzt(b,a+1)


print('-----------第6题-----------')

def trans(m):
    print(bin(m))
#本题直接调用的内置函数
#或使用下列方法:
'''
def trans(n):
    list = []
    while n//2 != 0:
        list.append(n%2)
        n = n // 2
        if n//2 == 0:
            list.append(n%2)
            break
    list.reverse()
    for t in list:
        print(t,end='')
    print()

#主函数
trans(int(input("请输入一个数:")))

'''
 
a=int (input("需要转换的十进制数为:"))
trans(a)



print('-----------第7题-----------')

def huiwen(e):
    x=0
    y=len(e)-1
    while x<y:
        if(e[x] != e[y]):
            break
        x+=1
        y-=1
    if(x<y):
        flag=0
    else:
        flag=1
    return flag

e=input("请输入一串字符:")
if(huiwen(e)):
    print("这是回文字符串\n")
else:
    print("这不是回文字符串\n")
  • 12
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值