python入门学习随记(九)

这篇博客是Python入门学习系列的第九篇,详细介绍了如何使用函数解决实际问题,包括求特殊a串数列和、创建缩写词、统计数字个数、求素数和、余弦函数近似值计算、列表元素求和、计算圆柱体体积、分段函数、最大公约数、哥德巴赫猜想和数字金字塔等实例。
Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

9-1 使用函数求特殊a串数列和

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:

fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和
裁判测试程序样例:

/* 请在这里填写答案 */
		 
a,b=input().split()
s=fn(int(a),int(b))
print(s)

输入样例:
在这里给出一组输入。例如:

2 3

输出样例:
在这里给出相应的输出。例如:

246

def fn(a,n):
    m = 0
    c = a
    for i in range(n):
        m = m + a
        a = a*10 + c
    return m

9-2 缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

函数接口定义:
acronym(phrase);
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:

/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))

输入样例:

central processing unit

输出样例:

CPU

def acronym(phrase):
    lst = phrase.split()
    return ''.join([x[0] for x in lst]).upper()

9-3 使用函数统计指定数字的个数

本题要求实现一个统计整数中指定数字的个数的简单函数。

CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:
在这里描述函数接口。例如:
CountDigit(number,digit ),返回digit出现的次数
裁判测试程序样例:

/* 请在这里填写答案 */

number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit 2 in "+str(number)+":",count)

输入样例:
在这里给出一组输入。例如:

-21252 2

输出样例:
在这里给出相应的输出。例如:

Number of digit 2 in -21252: 3

def CountDigit(number,digit):
    numberstr = str(number)
    lst = list(numberstr)
    count = 0
    for i in range(len(lst)):
        if lst[i] == str(digit) :
            count += 1
    return count

9-4 使用函数求素数和

使用函数求素数和

prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:
在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和
裁判测试程序样例:

/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:
在这里给出一组输入。例如:

1 10

输出样例:
在这里给出相应的输出。例如:

17

def PrimeSum(m,n):
    def prime(p):
        if p == 1:
            return False
        if p == 2 or p == 3:
            return True
        if p % 2 == 0:
            return False
        else:
            for i in range(3,p):
                if p%i == 0:
                    return False
            return True
    a = 0
    for i in range(m,n+1):
        if prime(i) :
            a = a + i
    return a

9-5 使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):

cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?

函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。

函数接口定义:
函数接口:
funcos(eps,x ),返回cos(x)的值。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:

/* 请在这里填写答案 */

eps=float(input())
x=float(input())
value=funcos(eps,x )
print("cos({0}) = {1:.4f}".format(x,value))

输入样例:
在这里给出一组输入。例如:

0.0001
-3.1

输出样例:
在这里给出相应的输出。例如:

cos(-3.1) = -0.9991

def funcos(eps,x):
    
    def funnum(x,n):
        n = float(n)
        if n == 1:
            return 1
        else:
            k = 1.0
            for i in range(1,int((n-1)*2)+1):
                k = k*i
            m = x**((n-1)*2)/(k)
            if n%2 == 0:
                return -m
            else:
                return m
    i = 1
    cos = 0.0
    while abs(funnum(x,i)) >= eps:
        cos = cos + funnum(x,i)
        i = i+1
    return cos

9-6 输入列表,求列表元素和(eval输入应用)

在一行中输入列表,输出列表元素的和。

输入格式:
一行中输入列表。

输出格式:
在一行中输出列表元素的和。

输入样例:

[3,8,-5]

输入样例:

6

print(sum(eval(input())))

9-7 计算圆柱体的体积

输入圆柱的高和半径,求圆柱体积,volume=π×r
​2×h 。要求定义和调用函数cylinder (r, h )计算圆柱体的体积。

输入格式:
输入在一行中给出2个实数,分别为半径r和高h。

输出格式:
在一行中以“Volume = 值”的形式输出圆柱体的体积,结果保留三位小数。

输入样例:

3.0 10

输出样例:

Volume = 282.743

r,h = input().split()
r = float(r)
h = float(h)
def cylinder (r, h):
    import math
    volume = math.pi * r**2 * h
    return volume
print('Volume = {0:.3f}'.format(cylinder(r,h)))

9-8 函数编程-分段函数

编写函数,计算下面分段函数的值。
在这里插入图片描述

输入格式:

输入一个实数x的值

输出格式:

输出y的结果值

输入样例:

0

输出样例:

y=-1.000000

输入样例:

3.5

输出样例:

y=-8.619337

def func(x):
    import math
    if x <= -2:
        y = -(math.e)**(2*x+1)+3
    elif x > 3:
        y = 2*(math.log(3*x+5,10))-11
    else:
        y = 2*x-1
    return y

x = float(input())
print('y={0:.6f}'.format(func(x)))

9-9 求最大公约数
求两个整数的最大公约数。

输入格式:
输入两个整数,以空格分隔。

输出格式:
输出最大公约数。

输入样例:

9 18

输出样例:

9

a,b = input().split()
a = int(a)
b = int(b)
def func(a,b):
    if a >= b:
        a,b = b,a
    for i in range(a,0,-1):
        if a % i == 0 and b % i == 0:
            break
    return i
print(func(a,b))
            

9-10 哥德巴赫猜想

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证5000以内的偶数都可以分解成两个素数之和。

输入格式:
输入在一行中给出一个(2, 5000]范围内的偶数N。

输出格式:
在一行中按照格式“N = p + q”输出N的素数分解,其中p \le≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。

输入样例:

24

输出样例:

24 = 5 + 19

x = int(input())
def prime(p):
    if p == 1:
        return False
    if p == 2 or p == 3:
        return True
    if p % 2 == 0:
        return False
    else:
        for i in range(3,p):
            if p%i == 0:
                return False
        return True
for i in range(1,int(x)):
    if prime(i) and prime(x-i):
        print('{0} = {1} + {2}'.format(x,i,x-i))
        break

9-11 数字金字塔

输出5行的数字金字塔。

输入格式:
该题没有输入。

输出格式:
输出5行数字金字塔,每行数字之间用1个空格间隔。

输入样例:

输出样例:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5

def func(x):
    for i in range(1,x+1):
        print(((str(i)+' ')*i).rjust(i+5))
func(5)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值