Python基础编程习题

article/2025/1/16 19:55:41
  1. 警察局抓了a,b,c,d四名偷窃嫌疑犯,其中只有一人是小偷。审问中
    a说:“我不是小偷。”
    b说:“c是小偷。”
    c说:“小偷肯定是d。”
    d说:“c在冤枉人。”
    现在已经知道四个人中三人说的是真话,一人说的是假话,问到底谁是小偷?
    问题分析:将a, b, c, d将四个人进行编号,号码分别为1,2,3,4。则问题可用枚举尝试法来解决。
    算法设计:用变量x存放小偷的编号,则x的取值范围从1取到4,就假设了他们中的某人是小偷的所有情况。四个人所说的话就可以分别写成:
    a说的话:x!=1
    b说的话:x == 3
    c说的话:x==4
    d说的话:x != 4或not(x ==4)
    注意:在x的枚举过程中,当这四个逻辑式的值相加等于3时,即表示“四个人中三人说的是真话,一人说的是假话”。
    算法如下:
x=1
for x in range(2,4):if((x!=1)+(x==3)+(x==4)+(x!=4)==3):print(chr(64+x),"is a thief .");
  1. 判断一个4位整数是否为回文数
    问题分析:回文数例子,1221是回文数,因为其千位与个位互换,百位和十位互换后,仍是它本身
    计算模型:设输入数为n,则有
    (1)取出每一位的值
    n的千位:a=n//1000
    n的百位:b=n//100%10
    n的十位:c=n//10%10
    n的个位:d=n%10
    (2)构成逆序数
    m=d * 1000+b * 100+c * 10+a
    (3)n==m?
    代码如下:
n=input("请输入一个四位数:")
n=int(n)
a=n//1000
b=n//100%10
c=n//10%10
d=n%10
m=d*1000+c*100+b*10+a
result=(n==m)
print("回文数的判断结果是:", result)
  1. 判断是否为闰年
    问题分析:
    (1)能被4整除不能被100整除
    (2)能被400整除
    计算模型:设输入数为y,则有
    (1)y%4== 0 and y%100!=0
    (2)y%400==0
stry=input("请输入年份:")
y=int(stry)
result=(y%4==0 and y%100!=0) or (y%400==0)
print("闰年的判断结果为:",result)
  1. 将输入的字符转换为小写,并输出其ASCII值
    提示:
    条件表达式为 z if x else y
    获得字母的ASCII值函数ord()
    字符转换函数chr()
    大写字母为‘A ’~‘Z’
c=input("请输入一个字符:")
y=(c if(c>='a' and c<='z') else chr(ord(c)+32))
print("字符:",c,",ASCII:",ord(c),",转换为:", 
y,",ASCII:",ord(y))
  1. 汉诺(Hanoi)塔问题。
    在这里插入图片描述
def Hanoi(n,ch1,ch2,ch3):if n==1:print(ch1,'->',ch3)else:Hanoi(n-1,ch1,ch3,ch2)print(ch1,'->',ch3)Hanoi(n-1,ch2,ch1,ch3)
  1. 输入两个字符串,求两个字符串共有的最长子串
def substr():s1=input('输入子串1:')s2=input('输入子串2:')r=""m=0for i in range(0,len(s2)):for j in range(i+1,len(s2)+1):if s2[i:j] in s1 and m<j-i:r=s2[i:j]m=j-iprint("最长公共的子串:",r)
substr()
  1. 输入一个点分IP地址,即输入形如***.***.***.***的字符串,其中 *** 为0~255之间的整数。编程将IP地址转化为32位二进制形式输出,也就是将 *** 转化为8位二进制数后依次连接起来形成32位二进制数
    【问题分析】判断是否为合法IP;将每个地址段转换为二进制数;重新拼接输出
def isVIP(L):if len(L)!=4:return Falsefor i in range(4):if L[i].isdigit()==False or int(L[i])<0 or int(L[i])>255:return Falsereturn True
def _10to2(num):res=""while True:res=str(num%2)+resnum=num//2if num==0:breakwhile len(res)<8:res='0'+resreturn res
def _10to2(num):s=bin(num)res=s[2:len(s)+1].rjust(8,'0')return res
def main():ipS=input('input IP:')L=ipS.split('.')while not isVIP(L):print("IP is error!")ipS=input('input IP,again:')L=ipS.split('.')s=""for i in range(4):s=s+' '+_10to2(int(L[i]))print(s)
main()
  1. 已知平面上若干点的坐标是a0(1,2), a1(-1,3), a2(2,1.5), a3(-2,0), a4(4,2)。计算任意两的距离并生成距离矩阵,其中,矩阵元素(i, j)表示Ai和Aj之间的距离,最后输出距离矩阵和两点之间最大距离
from math import *
def d(x1,y1,x2,y2):return sqrt((x1-x2)**2+(y1-y2)**2)
def ma():x=[1,-1,2,-2,4]y=[2,3,1.5,0,2]dd=[]s=0for i in range(len(x)):dd.append([])for j in range(len(x)):v=d(x[i],y[i],x[j],y[j])dd[i].append(v)if s<dd[i][j]:s=dd[i][j]for i in range(len(x)):for j in range(len(x)):print("%5.2f"%dd[i][j],end="  ")print()print("max=%5.2f"%s)
  1. 输入一段英文文字,统计其中出现的英文单词及其出现次数。要求程序可以过滤掉常见的标点符号,并按下面要求输出:
    (1)将出现次数大于2的单词按字典序输出
    (2)将出现次数大于2的单词按单词出现次数从大到小排序输出
    [问题分析]本例的关键是分离单词,但首先要滤掉标点符号。过滤标点可以将常见标点全部 替换为空格或一种标点,然后按这种唯一的标点分离出每个单词。本例要求统计每个单 词的出现次数,可以用字典表示,单词是键,次数是值。
def ma():txt=input('input text:')wordC={}for e in " !;.\t\n\"()-:#@":txt=txt.replace(e,',')L=txt.split(',')L.sort()while L[0].isdigit() or L[0]=='':del L[0]
for e in L:if e in wordC:wordC[e]=wordC[e]+1else:wordC[e]=1print('按字典输出单词及次数(>2):')words=list(wordC.keys())words.sort()
for e in words:if wordC[e]>2:print(e,wordC[e])print('按字出现频率排序输出(>2):')L1=list(wordC.items())L1.sort(key=gN,reverse=True)for i in range(len(L1)):if L1[i][1]>2:print(L1[i][0],L1[i][1])
def gN(x):return x[1]
  1. 验证哥德巴赫猜想:任何一个超过2偶数都可以写成两个素数之和。
    问题分析:
    (1)将一个超过2偶数N,分解为两个数之和,如N=k1+k2,分别判断它是否为质数。
    (2)找出小于N所有素数,建立一个素数表L,取出一个素数e,判断N-e in L,若为真,则找到此合数素数分解
def pm():N=int(input("请输入待验证的偶数n(n>2):"))while N<3 or N%2==1:print('不符合要求!')N=int(input("请输入待验证的偶数n(n>2):"))
pme=set()for i in range(2,N+1):pme.add(i)for i in range(2,N+1):if i in pme:for k in range(2*i,N+1,i):if k in pme:pme.remove(k)
for e in pme:f=N-eif f>=e and f in pme:print(N,'=',e,'+',f)
  1. 利用生成器构造一个fibonacci函数,生成fibonacci的小于100的数。
def fibonacci():a=b=1yield(a)yield(b)while True:a,b=b,a+byield(b)
def m():for num in fibonacci():if num>100:breakprint(num, end=' ')
  1. 读取mp3歌词文件,将时间标签转换成毫秒形式,并将每一句歌词读出来,按时间顺序以“时间(毫秒为单位)歌词”的形式显示每一句
def readLRC(filename):with open(filename,'r') as f:res={}L=f.readline()while L!='':if(L[1:3].isdigit() and L[4:6].isdigit() and L[7:9].isdigit() and L[3]==':' and L[6]=='.'):t1=(int(L[1:3])*60+int(L[4:6]))*1000+int(L[7:9])*100res[t1]=L[10:].rstrip()L=f.readline()return res
def m():fname=input('输入MP3歌词文件名:')lrcD=readLRC(fname)for key in sorted(lrcD):print(key,lrcD[key])
m()
  1. 声明一个公民类,包括身份证号、姓名、年龄,声明学生类、教师类继承于公民类,学生类有学号、班级和成绩,教师类有工号、系别、薪水
class C:def __init__(self,id,name,age):self.id=idself.name=nameself.age=agedef __del__(self):print('bye') 
class S(C):def __init__(self,id,name,age,stdno,grade,score):super(S,self).__init__(id,name,age)self.stdno=stdnoself.grade=gradeself.score=score 
class T(C):def __init__(self,id,name,age,Thno,dept,sal):super(T,self).__init__(id,name,age)self.Thno=Thnoself.dept=deptself.sal=sal
  1. 定义一个画图类的基本框架,抽象基类包括公共颜色和抽象类draw,子类点包括起点与终点、实现抽象方法draw,子类圆包括圆心与半径。
from abc import ABCMeta,abstractmethod
class S(object):__metaclass__=ABCMetadef __init__(self):self.color='black'@abstractmethoddef draw(self):pass
class C(S):def __init__(self,x,y,r):self.x=xself.y=yself.r=rdef draw(self):print('Draw circle:(%d, %d, %d)'%(self.x,self.y,self.r))
class Line(S):def __init__(self,x1,y1,x2,y2):self.x1=x1self.y1=y1self.x2=x2self.y2=y2def draw(self):print('Draw line:(%d, %d, %d,
%d)'%(self.x1,self.y1,self.x2,self.y2))
def f():c=C(10,10,5)l=Line(5,5,15,15)lst=[]lst.append(c)lst.append(l)for k in range(len(lst)):lst[k].draw()

http://chatgpt.dhexx.cn/article/tAbFrLRw.shtml

相关文章

四面体的表面积_如何求正四面体的体积和表面积?

当正四面体的棱长为a时&#xff0c;体积&#xff1a;√2a/12&#xff0c;表面积√3a^2。 解答过程如下&#xff1a; 正四面体是由四个全等的正三角形所组成的几何体。它有四个面、四个顶点、六条棱。每个二面角均为7032’&#xff0c;有四个三面角&#xff0c;每个三面角的面角…

空间四面体的面积、体积运算

基于C#窗体应用程序。通过添加控件&#xff08;Button、Label、TextBox&#xff09;来实现相应的功能。 目录 一、界面设计 二、编写代码 1、计算体积 2、计算面积 三、编译调试 四、实现效果 一、界面设计 二、编写代码 1、计算体积 double A1, A2, A3, A4, value; A…

四面体体积求法

四面体&#xff08;三棱锥&#xff09;体积 &#xff1a; 设 有&#xff1a; 不过这是有向的。如果知道那四个顶点&#xff0c;用这个公式即可求出体积。 如果不知道四点仅知道6条边长&#xff0c;就得用下面的方法——欧拉四面体公式 写成行列式&#xff1a; 那么有&…

matlab 四面体体积

计算方法&#xff1a; 已知四面体顶点坐标分别为 (x1,y1,z1)&#xff0c; (x2,y2,z2)&#xff0c; (x3,y3,z3)&#xff0c; (x4,y4,z4)&#xff0c; 可以通过如下两种方法求四面体体积&#xff1a; 1. 利用向量的混和积 过一顶点的三向量设为a&#xff0c;b&#xff0c;…

C++:使用类方法根据四点计算四面体体积

一个四面体有四个点&#xff0c;分别为a (x1, y1, z1), b (x2, y2, z2), c (x3, y3, z3), 以及d (x4, y4, z4)&#xff0c;计算该四面体的体积。 &#xff08;1&#xff09;四面体计算公式 &#xff08;2&#xff09;三维空间的两点的点乘 &#xff0…

【HDU1411】四面体的体积公式

1.题目链接。题目大意&#xff1a;就是给出一个四面体的六条边&#xff0c;求出这个四面体的体积。 2.这个&#xff0c;如果知道坐标是很好解决的&#xff0c;假设我们知道的是坐标&#xff1a; 体积就是混合积的六分之一。&#xff08;什么&#xff1f;x,y,z是啥&#xff1f;…

tomcat7安装版的详细步骤

如图&#xff1a;直接双击tomcat安装包进入安装流程。 出现安装界面&#xff0c;点击“next”下一步继续。 在这个界面点击i aggress &#xff0c;“我同意”继续下一步。 当出现这个界面的时候&#xff0c;不要做任何修改&#xff0c;直接点击下一步继续。 在这个界面…

tomcat7.0安装及配置教程(win10)

一、前言 Tomcat 服务器是一个开源的轻量级Web应用服务器&#xff0c;在中小型系统和并发量小的场合下被普遍使用&#xff0c;是开发和调试Servlet、JSP 程序的首选。 二、安装前准备 1.确保安装过jdk&#xff0c;安装过可跳过。 如果没有安装可以参考本人另外写的博文win1…

Tomcat7.0的安装及配置

本篇文章集合网上的零散经验加上2次实践整合&#xff0c;主要为大家提供如何正确使用Tomcat方法。本人安装的是7.0.77版本。 所需软件&#xff1a; JDK6.0/7.0 Tomcat 7.0 步骤&#xff1a; 1.安装JDK&#xff0c;配置好环境变量&#xff1a;JAVA_HOME、Classpath、Path 2…

win10安装tomcat7的安装与配置【详细教程】

1、tomcat传送门&#xff0c;群文件自取&#xff1b;群号&#xff1a;708072830 2、下载解压之后&#xff0c;先安装好tomcat 第一步&#xff1a; 在Tomcat bin路径下 找到 startup.bat 双击 打开&#xff0c;闪退表示 安装或者配置 失败&#xff1b;如下&#xff1b;界面不…

Tomcat7.0/8.0 详细安装配置

Tomcat 7.0 、Tomcat8.0 详细安装配置图解,以及UTF-8编码配置 注意:安装配置tomcat7.0及以上,需要先安装JDK1.7及以上才能支持。 1、先下载tomcat压缩包 Tomcat 7 :http://tomcat.apache.org/download-70.cgi Tomcat 8 : http://tomcat.apache.org/download-80.cgi …

tomcat7.0安装

下载地址 tomcat7.0下载地址 https://tomcat.apache.org/download-70.cgi 同事推荐别安装最新版&#xff0c;说是不稳定&#xff01; 安装前说明 安装tomcat之前一定要有jdk。 下载包分为安装版与免安装版&#xff0c;我使用的是安装版&#xff0c;安装完成后不需要配置环…

CentOS8-Tomcat7安装并设置开机自启动

CentOS8-Tomcat7安装并设置开机自启动 1、安装 将压缩包文件apache-tomcat-7.0.57.tar.gz利用Xftp 6工具上传到/usr/local中并解压&#xff08;为了以后可能会安装多个Tomcat,我将解压后的文件移动到了新建目录tomcat-cluster下并重命名&#xff09;&#xff1a; tar -xvf a…

java和 Tomcat9.0 Tomcat7 安装配置

工具/原料 JDK1.7.0 WIN7 方法/步骤 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk &#xff0c;第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。&#xff08;不能都安装在java文件夹的根目录下&#xff0c;jdk和jre安装…

如何安装Tomcat

本篇文章主要讲解的是如何安装Tomcat&#xff08;超详细&#xff09;。 下面是详细步骤&#xff08;具体操作可看图片上的标记&#xff09;&#xff1a; 1、如果你看完我上一篇文章“如何下载Tomcat”后&#xff0c;你会看到下图&#xff0c;在这我主要讲解的是在windows系统…

ubuntu安装Tomcat7

Tomcat7安装包已经被下载 需要传输到Ubuntu上 使用filezilla软件进行传输 在Ubuntu中安装ssh远程连接 sudo apt install openssh-server我在安装的ssh过程中出现了 如下问题&#xff1a; 时出现提示无法修正错误&#xff0c;因为您要求某些软件包保持现状&#xff0c;就是它…

tomcat7安装和eclipse中配置

一、tomcat安装 1.从官网上下载tomcat 7 https://tomcat.apache.org/download-70.cgi 2. 配置环境变量 &#xff08;电脑本身已经配置好jdk环境变量&#xff09; 在已有的CLASSPATH中添加 %CATALINA_HOME%\lib\servcet-api.jar Path中添加 &#xff1a;%CATALINA_HOME%…

eclipse安装Tomcat7.0(图文详解)

分享一个tomcat7&#xff0c;链接:https://pan.baidu.com/s/1Miwccc2DspBPOgY6rpl81w 密码:t33t 下载完压缩到指定文件夹&#xff1a; 在eclipse中点击菜单Window-->Preferences 点击Add按钮&#xff1a;选择对应的tomcat版本&#xff0c;我们这个是7.0 点击Next按钮&…

解压版tomcat7安装教程

转载地址 Tomcat涉及到的配置比较多&#xff0c;文件也多&#xff0c;根据我现在掌握的知识&#xff0c;简单的做了一下免安装版的tomcat的基本配置和安装方法。 一、配置JDK 要想在自己的计算机上安装Tomcat,需要JDK的支持&#xff0c;因为Tomcat是用java语言编写的一个很轻量…

Linux安装tomcat7详解

目录 前言 一、下载tomcat7安装包 二、解压tomcat文件包 1、进入/usr/local 2、将文件上传到此处&#xff0c;可以使用FinalShell进行操作 3、使用命令ls查看文件 4、解压tomcat文件 三、启动tomcat 1、进入tomcat文件并查看 2、进入bin目录 3、启动tomcat 四、验…