天天看点

非计算机专业同学的Python自我修养01WEEK-3例题总结

非计算机专业同学的Python自我修养

记录本科大一下的学习过程

WEEK-3例题

Q1:猜数一把提示偏大偏小

【问题描述】编写“猜数游戏”程序,功能是:

如果用户输入的数等于程序选定的数(该数设定为20),则输出“you win”,

否则如果大于选定的数,则输出“too big”,反之输出“too small”。

【输入形式】

输入一个整数。

【输出形式】

根据与选定值的大小关系,做相应的输出(大小写一致)。

【样例输入】

9

【样例输出】

too small

a=int(input())
if a>20:
    print('too big')
elif a==20:
    print('you win')
else:
    print('too small')
           

挺简单的,考点几乎只有if语句

Q2: 判断字符类型

【问题描述】

编写程序,输入一个字符ch,判断并输出字符的类型,即字母(alpha)、数字(numeric)或其他字符(other)。

【输入形式】一个字符ch

【输出形式】字母(alpha)、数字(numeric)或其他字符(other)

【样例输入】!

【样例输出】other

str=input()
a=str.isalpha() #所有字符都是字母
b=str.isdigit() #所有字符都是数字
if a== True:
    print('alpha')
elif b== True:
    print('numeric')
else:
    print('other')
           

这里可以学习一下str.isalpha的用法

Q3. 求一元二次方程的解

【问题描述】一元二次方程:ax2+bx+c=0 (a ╪ 0)

【输入形式】输入a、b和c的值(有理数)

【输出形式】输出x的两个值,或者No(即没有有理数的解)

【样例输入】1 2.5 3

【样例输出】No

【样例输入】1 -2 1

【样例输出】1.00 1.00

【样例输入说明】输入的值以空格分割,可以使用 以下语句:

a,b,c=input().split()

获取三个字符串数值后,再使用函数float进行数据类型转换。

【样例输出说明】输出的两个解保留两位小数,大的在前。

a,b,c=input().split(" ")
a=float(a)
b=float(b)
c=float(c)
d=(b**2-4*a*c)
if d<0:
    print('No')
else:
 x1=(-b+d**0.5)/(2*a)
 x2=(-b-d**0.5)/(2*a)
 x1=float("%.2f" % x1)
 x2=float("%.2f" % x2)
 print(x1,x2)
           

代码繁琐,以后要找到简便方法

Q4. BMI

【问题描述】(健康应用程序: BMI国际国内)体重指数(BMI)是衡量体重健康程度的指标。它可以通过以体重(千克)为单位除以身高(以米为单位)的平方来计算。16岁或以上人士的国际BMI值解释如下:BMI<18.5,超轻(Underweight);18.5<=BMI<25.0标准(Normal);25.0<=BMI<30.0,超重(Overweight);30.0<=BMI,肥胖(obese)。国内BMI值解释为:BMI<18.5,超轻(Underweight);18.5<=BMI<24.0标准(Normal);24.0<=BMI<28.0,超重(Overweight);28.0<=BMI,肥胖(obese)。 编写程序,提示让用户输入以千克为单位的体重以及以米为单位的身高,然后显示国际和国内BMI值(显示2位小数)和解释。

【输入形式】以千克为单位的体重以及以米为单位的身高

【输出形式】国际和国内BMI值(显示2位小数)和解释

【样例输入】

Enter weight in kg:60

Enter height in meter:1.65

【样例输出】

BMI is 22.04

BMI’s international interpretations is Normal

BMI’s domestic interpretations is Normal

a=eval(input('Enter weight in kg:'))
b=eval(input('Enter height in meter:'))
BMI=a/(b**2)
print ('BMI is',"%.2f" %BMI)
c="BMI's international interpretations is "#国际解释
if BMI<18.5 :
    print(c+'Underweight')
elif 18.5<=BMI<25.0:
    print(c+'Normal')
elif 25.0<=BMI<30.0:
    print(c+'Overweight')
elif 30.0<=BMI:
    print(c+'obese')
d="BMI's domestic interpretations is "#国内解释
if BMI<18.5 :
    print(d+'Underweight')
elif 18.5<=BMI<24.0:
    print(d+'Normal')
elif 24.0<=BMI<28.0:
    print(d+'Overweight')
elif 28.0<=BMI:
    print(d+'obese')
           

依旧麻烦。。不知道考试的时候能不能做完

Q5. 三类商品总价排序输出

【问题描述】

非计算机专业同学的Python自我修养01WEEK-3例题总结

【输入形式】

num1:20

num2:18

num3:17

price1:2.95

price2:1.49

price3:1.99

【输出形式】

values:$26.82,$33.83,$59.00(保留两位小数)

num1=eval(input('num1:'))
num2=eval(input('num2:'))
num3=eval(input('num3:'))
price1=eval(input('price1:'))
price2=eval(input('price2:'))
price3=eval(input('price3:'))
a=num1*price1
b=num2*price2
c=num3*price3

if a>b>c:
    print('values:$',"%.2f" %c,',$',"%.2f" %b,',$',"%.2f" %a,sep='')
elif a>c and c>b :
    print('values:$',"%.2f" %b,',$',"%.2f" %c,',$',"%.2f" %a,sep='')
elif c>a>b :
    print('values:$',"%.2f" %b,',$',"%.2f" %a,',$',"%.2f" %c,sep='')
elif b>a>c :
    print('values:$',"%.2f" %c,',$',"%.2f" %a,',$',"%.2f" %b,sep='')
elif b>c>a :
    print('values:$',"%.2f" %a,',$',"%.2f" %c,',$',"%.2f" %b,sep='')
elif c>b>a :
    print('values:$',"%.2f" %a,',$',"%.2f" %b,',$',"%.2f" %c,sep='')
elif a>b and b==c:
    print('values:$',"%.2f" %b,',$',"%.2f" %c,',$',"%.2f" %a,sep='')
elif b>a and a==c:
    print('values:$',"%.2f" %c,',$',"%.2f" %a,',$',"%.2f" %b,sep='')
elif c>a and a==b:
    print('values:$',"%.2f" %a,',$',"%.2f" %b,',$',"%.2f" %c,sep='')
           

刚开始是用了重叠的if语句,后来总有两个数据不对,也没做

这个题目测试的时候,没有三个完全相同的数据,所以没有后续的a=b=c

Q6. 百分制转五分制

  1. 百分制转五分制

    【问题描述】

给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089分为B,7079分为C,60~69分为D,60分以下为E。如果输入小于0或大于100的分数,则输出“Not valid”(注意大小写须一致)。

【输入形式】

输入一个可能带小数点的分数。

【输出形式】

根据对应关系,输出输入分数所对应的五分制分数档。

【样例输入1】

91

【样例输出1】

A

【样例输入2】

901

【样例输出2】

Not valid

a=eval(input())
if a<0 or a>100 :
    print('Not valid')
elif a>=90:
    print('A')
elif a<90 and a>=80:
    print('B')
elif a<80 and a>=70:
    print('C')
elif a<70 and a>=60:
    print('D')
elif a<60 :
    print('E')
           

有手就行的水题

总结

本来想把上两周的一块弄过来,结果题目要求看不到了,只有代码就没有意义了。

2021.3.18