Python123期末题库

这个太简单,不会就等着挂科吧,哈哈哈。

分两次从控制台接收用户的两个输入:第一个内容为"人名",第二个内容为"心里话"。然后将这两个输入内容组成如下句型并输出出来:(人名),我想对你说,(心里话)

a=input("")b=input("")print(f'{a:},我想对你说,{b:}')掌握输入和f’’控制输出格式。

用户输入矩形的长和宽,计算其面积并输出。

a,b=eval(input()),eval(input())print(a*b)和第四题一样注意输入的格式。

要求用户输入一个小数,能够分别获取整数部分和小数部分,并输出。

zs,xs=input().split('.')print(f'整数部分是{zs},小数部分是{xs}')5.三角形周长及面积输入的三角形的三条边a、b、c的长度,计算并依次输出三角形的周长和面积。测试用例的数据保证三角形三边数据可以构成三角形。

importmatha=eval(input())b=eval(input())c=eval(input())#保证三角形存在不用判断了s=(a+b+c)/2squar=math.sqrt(s*(s-a)*(s-b)*(s-c))perimeter=a+b+cprint('周长={:.2f}'.format(perimeter))print('面积={:.2f}'.format(squar))全都是公式,很简单。这里可以不用数学库,开方可以**0.5.三个输入可以写成一行。

利用下面公式计算并输出x的值。(提示:开平方可以用指数运算a**(1/2)来实现,也引入数学库math,再用数学库中的math.sqrt()函数实现)

importmatha=eval(input())b=eval(input())c=eval(input())d=(-b+math.sqrt(b*b-4*a*c))/(2*a)print("{:.2f}".format(d))7.计算存款利息在三行中依次输入初始存款金额,存款年限,年利率,每年末计一次利息并转为本金,计算并输出存款到期时的利息(不含本金,税前),结果保留2位小数。

importmathP=eval(input())N=eval(input())i=eval(input())F=P*((1+i))**N-Pprint('利息={:.2f}'.format(F))记得求利息需要减去本金。

商店需要找钱给顾客,现在只有50元,5元和1元的人民币若干张。输入一个整数金额值,给出找钱的方案,假设人民币足够多,且优先使用面额大的钱币。

importmathmoney=(int)(input())m50=math.floor(money/50)money=money%50#更新moneym5=math.floor(money/5)money=money%5m1=math.floor(money/1)print("50yuan:",m50)print("5yuan:",m5)print("1yuan:",m1)终于有点补充的知识了。此处我们就是要整除对吧,\\也是整除同样是向下取整,但是如果你要四舍五入的话。就需要round(1.75)这种类似于强制转换的语法。

输入一个1~12的数字,输出相应的月份,例如输入3,输出“三月份”

s=int(input())b=['0','一','二','三','四','五','六','七','八','九','十','十一','十二']print(b[s]+"月份")当然你也可以换成元组,最好是这样。这种索引操作要学会也不难呐。

输入一个英文字符串,按照空格分割单词并统计单词个数

str=input().split('')#print(len(str))#获取长度这里我们把输入的英文语句通过空格分成单词。存储在str列表中,用len()函数直接求出长度,也就是说单词数目。

输入一个年份,判断是否是闰年闰年判断标准如下,满足其下1个条件即可1、能被4整除,但不能被100整除2、能被400整除

year=int(input())ifyear%4==0andyear%100!=0oryear%400==0:print(f'{year:}年是闰年')else:print(f'{year:}年不是闰年')12.字符替换假设有段英文,其中有单独字母“P”被误写为“p”,请编写程序进行纠正。

str=input()if'p'instr:str=str.replace('p','P')print(str)这里记住字符串操作有一个replace(目的字符,被替换的字符)方法就可以了。

某个学生的用户名和密码都是abc123,判断学生输入的用户名和密码是否正确,如果正确,输出“欢迎进入”,否则输出“有误,请重新输入!”

user='abc123'pasword='abc123'user1=input()password1=input()ifuser==user1andpasword==password1:print('欢迎进入')else:print('有误,请重新输入!')就是一般的判断语句,没有难度。

输入一个非0十进制整数(不允许前导0的存在,即不允许类似0123这样的输入),将其反转输出。

x=input()y=x[::-1].strip('0')#删除零ify[-1]=='-':print('-'+y[:-1])else:print(y)这里我们输入字符串的整数,使用x[起始地址:末端地址:步长(-1表示颠倒字符串)],使用strip()方法就会出去两端的0.如果存在负数,颠倒后的负号就会出现在末端,我们输出控制一下输出的内容:加一个负号在前面,y不要输出负号就好了。

测算身高,单位为厘米,公式参考下列:男性身高=(父亲身高+母亲身高)×1.08÷2女性身高=(父亲身高×0.923+母亲身高)÷2性别输入"男"或“女”,本题保证所有测试输入身高数据为整型,输出结果取整。如果性别输入不符合要求,则输出“无对应公式”

dad=int(input())mom=int(input())child=input()ifchild=='男':hight=int((dad+mom)*1.08/2)print(hight)elifchild=='女':hight=int((dad*0.923+mom)/2)print(hight)else:print("无对应公式")就是按照孩子性别进行一个分支处理公式,输出就好了。注意非人性别的情况。

虽然我国已经很好的普及了国际单位制,而在现实生活中,仍然有很多地方采用了英制单位来描述,例如,我们买一台65寸的电视,这个地方的寸指的就是英寸,或者拍一张2寸的照片,用的是相同的英制单位。现在已知1英寸=2.54厘米。

xin=input()ifxin[-1]=='i':xout=eval(xin[0:-1])*2.54print(f'{xout:.2f}cm')elifxin[-4:]=='inch':xout=eval(xin[0:-4])*2.54print(f'{xout:.2f}cm')elifxin[-1]=='c':xout=eval(xin[0:-1])/2.54print(f'{xout:.2f}inch')elifxin[-2:]=='cm':xout=eval(xin[0:-2])/2.54print(f'{xout:.2f}inch')else:print('输入错误。')这道题主要考虑切片,条件语句,慢慢来不难。

一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用“逗号+空格”格式。

N=eval(input(""))up=pow((1.0+0.001*N),364)down=pow((1.0-0.001*N),364)ud=int(up//down)print("{:.2f},{:.2f},{}".format(up,down,ud))这道题都是极限值,要么整年做好学生,要么摆烂一整年,多损啊。注意N%,这个N代表百分号前面的数字,使用记得缩小啊!

复数的虚数部分必须有"j"或"J",浮点数必须包含".",输入一个数,请判断并输该数是“复数”、“浮点数”还是“整数”,题目保证输入是一个合法的数。

str=input()if'j'instror'J'instr:print('复数')elif'.'instr:print('浮点数')else:print("整数")19.一元二次方程求根一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:如果a值为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Dataerror!如果方程无实数解,输出“该方程无实数解”;如果方程有两个相同的实数解,输出一个解,结果保留2位小数;如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留2位小数。

a=eval(input())b=eval(input())c=eval(input())der=b*b-4*a*cifder<0:print("该方程无实数解")exit(0)ifa==0andb==0:print("Dataerror!")exit(0)ifa==0:print(f'{-c/b:.2f}')exit(0)ifder==0:print(f'{-b/(2*a):.2f}')exit(0)else:print(f'{(-b+der**0.5)/(2*a):.2f}{(-b-der**0.5)/(2*a):.2f}')这种多分支的情况,我们可以一个一个考虑满足条件输出就exit(0).非常省事儿。

编写程序,用户输入一个字符串,以回车结束,统计字符串里英文字母、数字字符和其他字符的个数(回车符代表结束,不计入统计)。

str1=input()letter=digit=other=0forcinstr1:ifc.isalpha():letter+=1elifc.isdigit():digit+=1else:other+=1print(f'letter={letter},digit={digit},other={other}')这里学习两个判断函数,isalpha(),isdigit(),判断字符类型。forcinstr1就是从str1中循环取字符c.

输入三个数a,b,c,判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。

a=float(eval(input()))b=float(eval(input()))c=float(eval(input()))s=(a+b+c)/2ifa+b>canda+c>bandc+b>a:print("YES")print(f'{(s*(s-a)*(s-b)*(s-c))**0.5:.2f}')else:print("NO")这里用海伦公式计算,考试可能不会给出所以一定要记住。三角形的判断就是两边之和大于第三边。

目前我国个人所得税计算公式如下:应纳个人所得税税额=(工资薪金所得-五险一金-个税免征额)×适用税率-速算扣除数个税免征额为5000元/月,2018年10月1日起调整后,也就是2018年实行的7级超额累进个人所得税税率表如下:全月应纳税所得额(含税级距)税率(%)速算扣除数不超过3,000元30超过3,000元至12,000元的部分10210超过12,000元至25,000元的部分201,410超过25,000元至35,000元的部分252,660超过35,000元至55,000元的部分304,410超过55,000元至80,000元的部分357,160超过80,000元的部分4515,160请编写一个个税计算器,用户输入为应发工资薪金所得扣除五险一金的金额,输出应缴税款和实发工资,结果保留小数点后两位。当输入数字小于0时,输出“error”。

#个税计算器n=eval(input())x=0ifn<0:print('error')else:if0<=n<=5000:x=0elif0

mile,wait=map(int,input().split(','))ifmile<=3:print(f'{13+wait:.0f}')elifmile<=15:print(f'{13+(mile-3)*2.3+wait:.0f}')elifmile>15:print(f'{13+12*2.3+(mile-15)*(1+0.5)*2.3+wait:.0f}')这种题更多的是对题目的理解,有一个阶梯。

BMI:BodyMassIndex国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析定义:BMI=体重(kg)/身高2(m2)获取用户输入的体重和身高值,计算并给出国际和国内的BMI分类

height,weight=map(float,eval(input))BMI=weight/heightifBMI<18.5:print(f'BMI数值为:{BMI:.2f}')print('BMI指标为:国际\'偏瘦\',国内\'偏瘦\'')if18.5

设某单位收取水费的规定是:每月用水量w<=10吨时,每吨按0.32元计费;每月用水量w<=20吨时,超过10吨的部分每吨按0.64元计费,10吨以内仍然按每吨0.32元计费;每月用水量w>20吨时,超过20吨部分每吨按0.96元计费,20吨以内仍按原标准计费。编写程序根据用户输入的用水量w计算水费x并输出。

water=eval(input())ifwater<=10:print(water*0.32)elifwater<=20:print(3.2+(water-10)*0.64)#print(f'{32+(water-10)*0.64:.1f}')else:print(f'{3.2+6.4+(water-20)*0.96:.1f}')就是一个阶梯计算,不解释。

某百货公司为了促销,采用购物打折的优惠办法。顾客一次购物折扣如下表所示。编写应用程序,由用户输入购物价值,计算并输出优惠价,结果保留1位小数。

money=eval(input())ifmoney<1000:print(f'折后价:{money:.1f}元。')elifmoney<2000:print(f'折后价:{money*0.95:.1f}元。')elifmoney<3000:print(f'折后价:{money*0.9:.1f}元。')elifmoney<5000:print(f'折后价:{money*0.85:.1f}元。')else:print(f'折后价:{money*0.8:.1f}元。')27.求和从键盘输入一行字符,将其中的数字求和并输出结果。输入格式:输入一个行字符。输出格式:若字符串中有数字则输出数字之和,若无数字则输出输入字符串中无数字,参看输入输出示例。

line=input()num_count=0num=0forcinline:ifc.isdigit():num_count+=int(c)num+=1ifnum!=0:print(f'数字之和是{num_count}')else:print('输入字符串中无数字')我们输入的是一个字符串,先用一个for循环对字符串每一个字符进行遍历,再用isdigit()函数进行判断。是数字我们就求和,不是我们不管,最后看sum是否为零,是表示没有数字,否则输出相应的和。

诗仙李白,一生好酒。一天,他提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗?要求使用循环来计算,不允许使用幂函数。

n=0foriinrange(5):n+=1n=n/2print(n)这里我们要注意了,五次遇到店和花。这两个是绑在一起的,开始我在这里都理解错了。

输入一个小于等于12的整数n,逐个输出字符串人生苦短我用python中前n个字符,每个字符后输出一个半角逗号和一个空隔。

s='人生苦短我用python'foriinrange(int(input())):print(s[i]+',',end='')注意我们这种循环输出,end=’',如果换成+链接字符串最后一个要报错,没有链接对象,你要改就复杂了,没有这个好。

输入一个正整数,计算其各个位的数字之和

count,str1=0,input()forcinstr1:ifc.isdigit():count+=int(c)print(count)这个与27很像,不讲了。

输入一个正整数n,计算1!+2!+3!+…+n!的和并输出。

n=int(input())count,count1=0,1foriinrange(1,n+1):forjinrange(1,i+1):count1*=jcount+=count1count1=1print(count)我们阶乘求和,先把一个阶乘表达出来,在对每一个阶乘求和,count1负责阶乘即内循环,注意每一次内循环后记得归一,count就是总和,外循环。

素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。在一般领域,对正整数n,如果用2到n-1之间的所有整数去除,均无法整除,则n为素数。(该算法可优化)题目要求:求出100以内的所有素数并输出,素数之间以一个英文空格区分。

foriinrange(2,100+1):forjinrange(2,i):ifi%j==0:breakelse:print(f'{i}',end='')这里比C语言的求和舒服多了,只有一个限制条件,100以内的,而且是大于2的输入。我们只需要素数就好了。细心的同学会知道,这个ifelse结构不科学,严格来说else没有匹配对象。结果是对的,当然我们也可以这样:

foriinrange(2,100+1):flag=True#代表是素数forjinrange(2,i):ifi%j==0:flag=Falsebreakifflag:print(f'{i}',end='')33.十进制整数转二进制十进制整数转二进制的方法是:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序即可得到对应的二进制数的各位。例如:22转二进制的计算过程:22/211余011/25余15/22余12/21余01/20余1得到22的二进制是10110

print('*')print('***')print('*****')print('*******')print('*****')print('***')print('*')这个是不动脑子的输出的,要是动一下脑子输出一个公式。可以这样:

#最大的三角形是4行,最长的一行有7个*,也就是2n-1个位置#我们需要把三角形看成两个元素组成,空格和*#正三角n=4foriinrange(n+1):print(''*(n-i)+'*'*(2*i-1))#倒三角,第一行最长,空格和*一共六个元素也就是2nforiinrange(1,n):#n取不到4,但是要从第一行开始取了。print(''*i+'*'*(2*n-1-2*i))可以把n换成任意正整数,这是课堂正解。

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何。现在的问题是:用户输入鸡的数量和钱数,鸡翁、鸡母、鸡雏各为多少?如果有解,输出全部解,并按鸡翁数量由少到多的顺序输出;如果无解则输出“无解”。

num_chicken,money=map(int,input().split(''))cocks=0#公鸡hens=0#母鸡chick=0#小鸡count_chicken=0#鸡的总数count_money=0#钱的总数status=0#状态控制,满足条件输出,否则就无解。foriinrange(1,num_chicken):forjinrange(1,num_chicken):forkinrange(1,num_chicken):count_money=5*i+3*j+k/3count_chicken=i+j+kifcount_chicken==num_chickenandcount_money==money:status=1print(f"{i}{j}{k}")ifstatus==0:print("无解")这里凭借三个for循环,三种鸡的范围是(1,n+1)作为循环指标。在内循环计算鸡的数目,钱的数目,再来一个if判断,只要满足条件,就输出。这里不能使用exit(0),因为满足条件有很多组,所以使用一个status来控制输出。

使用蒙特卡洛法求出曲线y=x*x与x轴之间在0-1范围内的面积种子数为10使用100000个点进行计算结果保留3位小数

importrandomasrdrd.seed(10)total=100000cnt=0foriinrange(1,100000+1):x=rd.random()y=rd.random()ifx**2>=y:cnt+=1print(f'{cnt/total:.3f}')首先学会随机数的生成,其次明白什么是蒙特卡洛法(不会就百度,一看就会)。下方y

设计一个用二分法计算一个大于或等于1的实数n的平方根的函数sqrt_binary(n),计算精度控制在计算结果的平方与输入的误差不大于1e-6。

defBinsecond(n):low,up=0,nwhileTrue:mid=(low+up)/2ifabs(mid*mid-n)<1e-6:returnmidelifmid*mid-n>0:up=midelse:low=midn=eval(input())x=Binsecond(n)print(x)print(n**0.5)二分法两个指针嘛,把被开方数放在数轴末端,我们一开始折半查找,大了就向左边靠,小了往右边靠,直到我们相等为止。

火车时速在200以上的列车:座位号是以ABCDF五个字母为区分的,一般会把座席分为商务座、一等座、二等座。商务座:座位布局“2+1”,一排有三个座位,其中AC是相连的,F是单独一个座位;一等座:座位布局“2+2”,一排有四个座位,其中AC是相连的,DF是相连的。二等座:座位布局“3+2”,一排有五个座位,其中ABC是相连的三个座位,DF是相连的两个座位,这些座位中A、F都是靠窗的座位。用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口、中间还是过道。每个车厢座位排数是1-17,输入时不区分字母大小写。根据输入判定座位的位置,当输入的数据不是一个合法的座位号时,输出“座位号不存在”。

try:ticket=input()if1<=eval(ticket[:-1])<=17:ifticket[-1]in['A','a','F','f']:print("窗口")elifticket[-1]in['C','c','D','d']:print('过道')elifticket[-1]in['B','b']:print('中间')else:print('座位号不存在')else:#数字超出范围print('座位号不存在')except:print('座位号不存在')我们主要从输入开始想办法,而且决定窗口还是哪里,我们把最后一个字符串的所有可能分类放在列表或者元组里面,再加以判断。使用try就是输出那些非法输入。

根据下面的泰勒级数关系式,依次累加绝对值不小于阈值的项,求圆周率的值。

n=eval(input())pi=k=0f=1whileabs(1/(2*k+1))>=n:pi=pi+f*(1/(2*k+1))k+=1f=-fprint("{:.6f}".format(4*pi))我们把+,-用一个flag来控制,而小数精度有最后一项来决定的,此时我们主要求出表达式就好,所幸题目最后一项带k的哪一项以经说了。

使用两个input()函数,接收用户的两个输入字符串,每个字符串最多包含一个英文点号“.”,将每个字符串中的数字和点号找出,按顺序组成一个数字。将得到的两个数字求和并输出,如果用户输入的引文点号“.”超过1个,提示输入错误,具体内容参阅以下示例。

x1=input()x2=input()s1,s2='',''ifx1.count('.')>1orx2.count('.')>1:print('输入错误')exit(0)foriinx1:#TODO:writecode...if'0'<=i<='9'ori=='.':s1=s1+iforiinx2:#TODO:writecode...if'0'<=i<='9'ori=='.':s2=s2+iprint(eval(s1)+eval(s2))统计字符个数s.count(’统计字符’)

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,用户输入一个月份数,计算并在一行内输出该月的兔子总对数以及前一个月与该月兔子数量的比值,比值结果保留小数点后3位,数字间用空格分隔。

n=int(input())#f0代表前两月兔子,f1代表前一个月兔子,f代表本月兔子。f0,f1=1,1f=f0+f1i=3whilei

中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。将这17位数字和系数相乘的结果相加。用加出来和除以11,看余数只可能是:0-1-2-3-4-5-6-7-8-9-10分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X(大写英文字母X)。如果余数是10,身份证的最后一位号码就是2。用户输入一个身份证号,校验其是否是合法的身份证号码。

ID=input()coe=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]#系数sum=0foriinrange(0,17):sum+=int(ID[i])*coe[i]rem=sum%11#余数ifID[17]=='X':ifrem==2:print('身份证号码校验为合法号码!')else:print('身份证校验位错误!')elif(rem+int(ID[17]))%11==1:print('身份证号码校验为合法号码!')else:print('身份证校验位错误!')这个就是一个流程。身份证前17位乘以一个系数用来加密计算,最后一位用来校验。校验方法解释一下,我们第取余数后,若为2最后一位必为x,其他结果都是把余数(求模后的结果)和身份证最后一位相加再模11结果为1才正确。

注意加减法需要进行强制转换。

编写打印星号三角形函数,使用该函数,传入数据2、3、4打印出如下圣诞树图形

defsanta(n):foriinrange(1,n+1):print(''*(4-i)+'*'*(2*i-1))#4代表中心,每一行空格加星星#上面的4-i可以根据数据进行修改santa(2)santa(3)santa(4)44.判断IP地址合法性互联网上的每台计算机都有一个独一无二的编号,称为IP地址,每个合法的IP地址由’.‘分隔开的4个数字组成,每个数字的取值范围是0-255。现在用户输入一个字符串s(不含空白符,不含前导0,如001直接输入1),请你判断s是否为合法IP,若是,输出’Yes’,否则输出’No’。如用户输入为202.114.88.10,则输出Yes;当用户输入202.114.88,则输出No。

s=input()deff(s):#以“.”为标志对字符串进行切片,得到一个字符串列表lists=s.split('.')#是否是4个数字iflen(lists)!=4:return'No'#是否都在0-255之间foriinrange(4):try:tmp=int(lists[i])iftmpnotinrange(0,256):return'No'except:return'No'return'Yes'print(f(s))获取输入s,并编写函数对s进行判断对字符串进行分割存放在lists中,判断步骤如下:2.1首先满足长度为4才继续,否则返回No.2.2判断每个分区是否为数字,这里可以用try来强转,转不动说明非数字,输出No。2.3判断数字的范围,满足(0,255+1)才输出‘Yes’,否则输出NO.45.编写闰年判断函数将判断闰年封装为函数,如果是闰年,函数输出True,否则输出False.使用该函数输出2010-2020年之间所有闰年

defjudge():foriinrange(2010,2020+1):#TODO:writecode...ifi%4==0andi%100!=0ori%400==0:print(i)judge();46.校验身份证号码并输出个人信息中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:

s=input()defprintID(s):print('身份证号码校验为合法号码!')print(f'出生:{s[6:9+1]}年{s[10:11+1]}月{s[12:13+1]}日')ifint(s[16])%2==0:print('性别:女')else:print('性别:男')defID(s):mod=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]sum=0foriinrange(0,17):sum+=int(s[i])*mod[i]ref=sum%11ifref==2ands[17]=='X':printID(s)elif(ref+int(s[17]))%11==1:printID(s)else:print('身份证校验位错误!')ID(s)这类题已经出现过很多次了,如果你们的学校经常出这类题。请你重视,此题换汤不换药,只是输出的类容不同,所以我们只需要在编写一个打印函数就好了。

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入一个大于2的正整数,当输入为偶数时,在一行中按照格式“N=p+q”输出N的素数分解,其中p、q均为素数且p≤q。因为这样的分解可能不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。当输入为奇数时,输出’Dataerror!’。

defIsprime(n):foriinrange(2,n):ifn%i==0:returnFalsereturnTrueN=int(input())ifN%2==1:print('Dataerror!')else:foriinrange(2,N-2+1):ifIsprime(i)andIsprime(N-i):print(f'N={i}+{N-i}')break一个判断数字是否为素数的函数(这里没有PTA上的那么复杂,简单判断一下就好)。获取输入,首先判断其是否为偶数,不是偶数,输出对应的错误信息。一个循环搞定哥德巴赫猜想,都为同时判断是否为素数,输出相应信息。48.判断素数函数写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。

defis_prime(n):ifn==1:returnFalseforiinrange(2,int(n**0.5+1)):ifn%i==0:returnFalsereturnTruen=int(input())foriinrange(2,n+1):ifis_prime(i):print(f'{i}'+'',end='')49.汉诺塔汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。柱子编号为a,b,c,将所有圆盘从a移到c可以描述为:如果a只有一个圆盘,可以直接移动到c;如果a有N个圆盘,可以看成a有1个圆盘(底盘)+(N-1)个圆盘,首先需要把(N-1)个圆盘移动到b,然后,将a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。请编写一个函数move(n,a,b,c),给定输入n,a,b,c,打印出移动的步骤:例如,输入move(2,‘A’,‘B’,‘C’),打印出:A–>BA–>CB–>C

defmove(n,position,mid,aim):#pos代表位置ifn==1:print(position,'-->',aim)#最后一个饼移到目的地else:move(n-1,position,aim,mid)#倒数第二块跑到中间构建中间的柱子print(position,'-->',aim)#最后一块饼是从开始的柱子移动过去move(n-1,mid,position,aim)#中间过程,中间就是最开始的柱子,我们目的不会改变n=int(input())a,b,c=map(str,input().split())move(n,a,b,c)本题理解逻辑有点苦难,是锻炼的机会。但是不明白也没事,记住三点:1.就是打印的地方2.打印的内容一致。3.函数内嵌两个move(n-1,1,3,2)move(n-1,2,1,3)。

编写函数:把任意十进制整数n转换成k进制数输入输出示例:输入n和k的值,n表示需要转换的数据,k为需要转换为的进制

defzhuan(n,k):ans=''#创建一个空串,用于转转化后的内容whilen/k!=0:#非整数除法,n==0停止ans=str(n%k)+ans#把余数存起来注意强制转换,还是倒起存的。n=n//k#整除,当nn;2.m除以n得余数r;3.若r=0,则n为最大公约数结束;否则执行步骤4;4.m←n,n←r,再重复执行步骤2。

m,n=map(int,input().split(','))#获取输入defGcd(m,n):r=m%nwhiler!=0:m=n#这句话的意思,最大的数丢弃,把输入较小的数作为大数,取模后的余数作为小数,继续大树模上小数。n=rr=m%nprint(n)#找到最大公约数,打印。Gcd(m,n)52.数字统计接收用户输入的多个数据,直到输入为空时停止将用户输入的一组数据放入列表中存放编写对列表进行统计的函数包括:计算列表的平均数,并返回数据计算列表中的方差,并返回数据计算列表中的中位数,并返回数据使用这些函数和python自带的len()函数输出1列表中数据的个数2列表数据和和3列表数据的平均值4列表数据的方差5列表的中位数

#请在此行下方编写函数defgetNum():#注意这个循环输入,输入为空返回列表ls=[]whileTrue:num=input()ifnum:ls.append(eval(num))else:breakreturnlsdefavg(ls):#求平均值s=0foriinls:s+=ireturns/len(ls)defdev(ls):#求方差a=avg(ls)#第一个函数求出平均值s=0foriinls:s+=(i-a)**2returns/len(ls)defmedian(ls):#中位数ls.sort()iflen(ls)%2!=0:#奇数直接在中间returnls[len(ls)//2]else:#偶数,中间两位数减半return(ls[len(ls)//2]+ls[len(ls)//2-1])/2ls=getNum()print("数量",len(ls))print("和",sum(ls))#直接求和print("平均值",avg(ls))print("方差",dev(ls))print("中位数",median(ls))对公式熟练,循环输入,列表的用法。

平均绩点计算方法:(课程学分1绩点+课程学分2绩点+…+课程学分n*绩点)/(课程学分1+课程学分2+…+课程学分n)用户循环输入五分制成绩和课程学分,题目测试数据保证至少有一组或以上合法数据输入。输入‘-1’时结束输入,计算学生平均绩点。

goods=[{"name":"电脑","price":4999},{"name":"鼠标","price":80},{"name":"游艇","price":200000},{"name":"别墅","price":2000000}]#组建一个列表字典allmoney=int(input(''))#钱的总数forn,iinenumerate(goods):#n负责标好,循环就是goods内容print(str(n)+''+i['name'])num=int(input())#选择购买的标号ifgoods[num]['price']<=allmoney:#钱够就可以购买print('恭喜你成功购买一个{}'.format(goods[num]['name']))else:print('账户余额不足,先去赚钱吧!')goods[列表的成员][成员里卖弄的具体特征]。第一个[]锁定字典,[]锁定字典的成员。

第二代居民身份证是依据2003年6月28日第十届全国人大常委会第3次会议通过的《中华人民共和国居民身份证法》实施的。第一代身份证十五位数升为第二代身份证十八位数的一般规则是:第一步,在原十五位数身份证的第六位数后面插入19(1905年1月1日以后出生)或20(2000.1.1-2004.12.31出生),这样身份证号码即为十七位数;第二步,按照国家规定的统一公式计算出第十八位数,作为校验码放在第二代身份证的尾号。校验码计算方法:将身份证前十七位数分别乘以不同系数并求和S=Sum(Ai*Wi)Ai:表示第i位置上的身份证号码数字值,i=0,…,16Wi:表示第i位置上的加权因子,Wi:7910584216379105842S对11取模得到余数0-10,对应的校验码如下:余数Y:012345678910校验码:10X98765432

ID=input()#获取IDWi=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]#17位权重we18=[1,0,'X',9,8,7,6,5,4,3,2]#校验位ifint(ID[6:7+1])inrange(0,5):ID=ID[0:6]+'20'+ID[6:]#进行拼接else:ID=ID[0:6]+'19'+ID[6:]sum=0foriinrange(0,17):sum+=int(ID[i])*Wi[i]qumo=sum%11ID=ID+str(we18[qumo])#确定校验位print(ID)57.统计次数输入一个中文句子,以回车结束。统计并输出句子中字符个数及中文词数,要求中文分词采用jieba库中的lcut()函数进行。

THE END
1.Python错题整理正确答案 F 解析 在Python 中: 执行a, b = 12, 2后: a被赋值为12 b被赋值为2 执行c = a / b时: 使用/进行除法运算,结果是浮点数。 因此,c的数据类型是float,而不是整型。 结论 由于c是浮点数类型 (float),所以原命题是错误的。答案应为 F。 https://blog.csdn.net/xiaoyushashasha/article/details/144435477
2.Python题目一、单选题(共25题,每题2分,共50分) 1. 关于Python中的列表,下列描述错误的是?( ) A. 列表是Python中内置可变序列,是若干元素的有序集合; B. 列表中的每一个数据称为“元素”; C. 在Python中,一个列表中的数据类型可以各不相同; D. 可以使用s[1]来获取列表s的https://mp.weixin.qq.com/s?__biz=MzkyMjQxNDQxMg==&mid=2247485092&idx=1&sn=3003f286e1659b7c8caca13fae4d1503&chksm=c054090563356b10514a4bbb5c4e8c4e58b9cdc67bfdc490b1521a20ef94f97c7b674576138f&scene=27
3.python123题库及答案解析51CTO博客已为您找到关于python123题库及答案解析的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及python123题库及答案解析问答内容。更多python123题库及答案解析相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/python123tikujidaanjiexi.html
4.大头博士题库和python123哪个好?Worktile社区大头博士题库和python123在一些方面各有优势,具体选择哪个更好要根据个人需求来决定。 大头博士题库是一款专业的在线题库平台,它提供了丰富的题目资源,包括高考、中考、小升初等各个阶段的题目。它的优势在于题目的质量较高,题目类型全面,能够满足不同层次学生的需求。此外,大头博士题库还配有详细的解析和答案,可以https://worktile.com/kb/ask/101763.html
5.1000题库系列二·python题库·看云2.57 判断对错:3+4j不是合法的Python表达式。 2.58 判断对错:0o12f是合法的八进制数字。 2.59 判断对错:只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象。 2.60 判断对错:在Python中0xad是合法的十六进制数字表示形式。 2.61 判断对错:4j 是合法Python数字类型。https://www.kancloud.cn/deephitomi/python_stock/891716