Python实验报告7

该文展示了几段Python代码,分别用于统计输入字符串中的字母、数字、空格和其他字符数量,以及解决二次方程的根。代码利用ASCII编码判断字符类型,并采用不同的方法处理特殊情况,如方程无解或唯一解。此外,还用辗转相除法求解两个正整数的最大公约数和最小公倍数。
摘要由CSDN通过智能技术生成

1、编程实现书入一行字符,分别统计并输出其中的英文字母、数字、空格和其他字符的个数。

from math import*
s=input("请输入一串字符:")
c1,c2,c3,c4=0,0,0,0
for i in s:
    if "a"<=i<="z" or "A"<=i<="Z":
        c1=c1+1
    elif ord(i)==32:
        c2=c2+1
    elif 48<=ord(i)<=57:
        c3=c3+1
    else:
        c4=c4+1
print("英文字母个数为{},数字个数为{},空格的个数为{},其他字符的个数为{}".format(c1,c3,c2,c4))

本题使用了字符对应的ASCII编码之间的转换,需要 已知一些特定字符的编码。

2、编程实现:输入数字a,b,c。求a{x}^{2}+bx+c=0的根,要求附上算法流程图。

输入输出实例1:

请输入a,b,c:0,0,0

参数均为0,方程无意义!

输入输出实例2:

请输入a,b,c:0,0,3

方程不成立!

输入输出实例3:

请输入a,b,c:0,1,3

x=-3.00

输入输出实例4:

请输入a,b,c:2,3,1

x1=-0.50,x2=-1.00

输入输出实例5:

请输入a,b,c:2,1,1.25

x1=-0.25+0.75i,x2=-0.25-0.75i

a,b,c=eval(input("请输入a,b,c(英文,隔开):"))
if a==0 and b==0 and c==0:
    print("参数均为零,方程无意义!")
elif a==0 and b==0:
    print("方程不成立!")
elif a==0:
    print("x={:.2f}".format(-c/b))
elif b**b-4*a*c<0:
    x1,x2=-b/(2*a),((-b**b+4*a*c)**0.5)/(2*a)
    print("x1={:.2f}+{:.2f}i,x2={:.2f}-{:.2f}i".format(x1,x2,x1,x2))
else:
    x1,x2=(-b+(b**2-4*a*c)**0.5)/(2*a),(-b-(b**2-4*a*c)**0.5)/(2*a)
    if x1==x2:
        print("x1=x2={:.2f}".format(x1))
    else:
        print("x1={:.2f},x2={:.2f}".format(x1,x2))

注:在做本题时一定要先将计算方程的根的那些公式弄清楚,然后再去根据公式分步骤计算,还有要注意的就是不要忘记写一些必要的符号,如两个数之间相乘要记得写乘号等。(算法流程图这里就不附上了。)

3、编程实现:输入两个正整数分别求他们的最大公约数和最小公倍数。要求使用辗转相除法先求出最大公约数。

a,b=map(int,input("请输入两个整数:").split(","))
c=a*b
r=a%b
while r!=0:
    a=b
    b=r
    r=a%b
print("最大公约数",b)
print("最小公倍数",round(c/b))

注:一个数的最小公倍数等于这两个数相乘后除以最大公约数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值