《Python 程序设计》题目集

题目:第3章-19 找最长的字符串 (15 分)

本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。

输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。

输出格式:
在一行中用以下格式输出最长的字符串:

The longest is: 最长的字符串

如果字符串的长度相同,则输出先输入的字符串。

输入样例:

5
li
wang
zhang
jin
xiang

输出样例

The longest is: zhang

一、代码

N=int(input())
Maxstr=""
for i in range(0,N):
    str=input()
    if len(str)>len(Maxstr):
        Maxstr=str
print("The longest is: {}".format(Maxstr))

二、总结

按N个数输入可以通过for循环。

题目:第3章-20 逆序的三位数 (10 分)

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

输入样例:

123

输出样例:

321

一、代码

N=input()
print(int(N[::-1]))

#最简格式如下
# print(int(input()[::-1])

二、总结

1.注意最后转化为int():防止输出001(去除00)
2.[::-1] :逆序输出

题目:第3章-21 判断回文字符串 (15 分)

输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。

输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:
输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。

输入样例1:

level

输出样例1:
level
Yes

这里是引用

输入样例2:

1 + 2 = 2 + 1 =

输出样例2:

1 + 2 = 2 + 1 = No

一、代码

str=input()
r_str=str[::-1]
print(str)
if str==r_str:
    print("Yes")
else:
    print("No")

二、心得

通过 str[::-1] 实现逆序赋值

题目:第3章-22 输出大写英文字母 (15 分)

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。

输入格式:
输入为一个以回车结束的字符串(少于80个字符)。

输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。

输入样例1:

FONTNAME and FILENAME

输出样例1:

FONTAMEIL

输入样例2: fontname and filrname

输出样例2:

Not Found

一、代码

str=input()
t_str=""
for i in str:
    if i.isupper() and i not in t_str:
        t_str+=i
if len(t_str)==0:
    print("Not Found")
else:
    print(t_str)

二、心得

1.设置临时变量t_str来存储大写字母
2.i.isupper() 判断 i 是否为大写字母,是返回True,否则返回False
3.not in 的使用:不在某个…里面

题目:第4章-1 生成3的乘方表 (15 分)

输入一个非负整数n,生成一张3的乘方表,输出3
​0
​​ ~3
​n
​​ 的值。可调用幂函数计算3的乘方。

输入格式:
输入在一行中给出一个非负整数n。

输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

3

输出样例:

pow(3,0) = 1

pow(3,1) = 3

pow(3,2) = 9

pow(3,3) = 27

一、代码

num=int(input())
for i in range(0,num+1):
    print("pow(3,{}) = {}".format(i, pow(3, i)))

二、心得

1.定义输入为int类型: 变量名=int(input())
2.range(0,num+1),注意左为闭区间,右为开区间。

题目:第4章-2 统计素数并求和 (20 分)

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

一、代码

自己的代码,有点乱

begin,end=map(int,input().split())
sum=0
count=0
temp=0
for i in range(begin,end+1):
    if i==2:
        count+=1
        sum+=i
    else:
        for t in range(2, i):
            if i % t == 0:
                temp=1
                break
        if temp!=1 and i!=1:
            count += 1
            sum += i
        temp=0
if begin==1 and end==1:
    count=sum=0
print("{} {}".format(count,sum))

别人的代码

def isPrime(num):
    num=int(num)
    for i in range(2,num):
        if num%i==0 :
            return False
    if(num!=1):
        return True
def cnt(a, b):
        cnt=0
        for i in range(a, b + 1):
            if isPrime(i):
                cnt=cnt+1
        return cnt
def sum(a,b):
    sum=0
    for i in range(a,b+1):
        if isPrime(i):
            sum+=i
    return sum
m,n=input().split()
m=int(m)
n=int(n)
print('{:d} {:d}'.format(cnt(m,n),sum(m,n)))

原文链接:https://blog.csdn.net/qq_43733499/article/details/102583113

二、心得

对素数依然没有完全真正掌握,没有形成自己的思维,打代码头脑没有很清晰…

题目:第4章-3 猴子吃桃问题 (15 分)

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

输入格式:
输入在一行中给出正整数N(1<N≤10)。

输出格式:
在一行中输出第一天共摘了多少个桃子。

输入样例:

3

输出样例:

10

一、代码

def count(c):
    N=1
    while c>1:
        N=(N+1)*2
        c=c-1
    return N
day=int(input())
print(count(day))

二、心得

1.通过函数实现统计

题目:第4章-4 验证“哥德巴赫猜想” (20 分)

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

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

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

输入样例:

24

输出样例:

24 = 5 + 19

一、代码

import math
def prime(s): # 判断是否为素数
    if s==1: # s==1的情况
        return False
    else:
        for i in range(2, int(math.sqrt(s))+1):  # 剩下的所有情况
            if s % i == 0:
                return False
        return True

def guess(d):
    for i in range(2, int(d/2+1)):
        end = d - i
        if prime(end) and prime(i):
            print("{} = {} + {}".format(d,i,end))
            return 0

digit=int(input())
guess(digit)


二、心得

1.通过prime() 和 guess()两个函数实现
2.熟悉素数的判断
3.注意判断素数的右范围:判断素数的右区间可定义为
int(math.sqrt(s) +1),别漏了后面的 1
这里注意转化为int类型,防止float和int类型不同引发错误。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的提问!以下是我整理的关于浙大版《Python程序设计》的题目: 第一章 Python初体验 1.1 Python简介及特点 1.2 Python环境搭建 1.3 Python初体验 1.4 Python简单应用:温度转换 第二章 Python基础讲解 2.1 Python基本数据类型 2.2 列表、元组、字典及其操作 2.3 条件语句 2.4 循环语句 2.5 函数 2.6 模块与包 第三章 Python高级语法 3.1 面向对象编程基本概念 3.2 类的定义与使用 3.3 继承与多态 3.4 异常处理机制 3.5 迭代器与生成器 3.6 装饰器 第四章 Python实战 4.1 文件操作 4.2 数据处理与存储 4.3 网络编程 4.4 多线程与多进程 4.5 数据可视化 希望这份题目对您有所帮助!如果您有任何问题或需要更多帮助,请随时告诉我。 ### 回答2: 浙大版《Python程序设计题目是一本用于学习和训练编程技能的教材,主要面向浙江大学的计算机专业学生。这本书包含了丰富多样的编程题目,涵盖了Python编程的各个方面,旨在帮助学生熟悉和掌握Python语言的基础知识和编程能力。 这本书的题目设计紧密结合了计算机科学和软件工程的实际应用场景,题目种类多样,包括数学计算、字符串操作、文件处理、列表和字典操作、图形界面编程等等。每个题目都配有详细的题目描述和要求,让学生能够清楚地理解问题的背景和需求,在解题过程中锻炼问题分析和算法设计的能力。 这本教材还提供了每个题目的解答和思路,供学生参考和学习。同时,书中也介绍了Python的编程技巧和常见的调试技巧,帮助学生提高代码的效率和可维护性。此外,书中还介绍了一些常用的Python库和工具,帮助学生更好地应用Python进行软件开发。 总之,浙大版《Python程序设计题目是一本全面而实用的教材,适合计算机专业学生学习和掌握Python编程技能。通过解答其中的题目,学生不仅可以提高编程能力,还可以培养问题分析和算法设计的思维方式,为将来的软件开发和科学研究打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值