7-1 华氏温度到摄氏温度的转换(高教社,《Python编程基础及应用》习题3-9) (2 分)
从键盘读取华氏温度,转换成摄氏温度并输出,保留1位小数。 转换公式为:c=5/9*(f-32), 其中,f为华为温度,c为摄氏温度。
f=eval(input())
c=5/9*(f-32)
print("{:.1f}".format(c))
7-2 温度转换 (5 分)
本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:2,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
print("fahr = 150, celsius = {}".format(int(5*(150-32)/9)))
7-3 温度转换 (11 分)
温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。
根据华氏和摄氏温度定义,转换公式如下:
C = ( F – 32 ) / 1.8 F = C * 1.8 + 32
TempStr=input('')
if TempStr[-1] in ['F','f']:
C=(eval(TempStr[:-1])-32)/1.8
print("{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F=1.8*eval(TempStr[:-1])+32
print("{:.2f}F".format(F))
else :
print("Error")
7-4 人民币与美元汇率兑换程序 (10 分)
按照温度转换的设计思路,设计人民币与美元汇率兑换程序,按照1美元=7人民币的汇率 编写一个双向兑换程序。
T=input('')
if T[0] in ["$"]:
a=eval(T[1:])*7
print("¥{:.2f}".format(a))
elif T[0] in ["¥"]:
b=eval(T[1:])/7
print("${:.2f}".format(b))
else :
print("输入格式错误")
7-5 三角形面积 (100 分)
已知三角形三边长(假设能构成三角形),计算三角形面积。
a=int(input())
b=int(input())
c=int(input())
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
print("{:.1f}".format(s))
7-6 计算长方形的周长和面积 (20 分)
输入长方形的长和宽,要求计算长方形的周长和面积。
a,b=input().split()
a,b=eval(a),eval(b)
c=a+a+b+b
s=a*b
print("C = {}\nS = {}".format(c,s))
7-1 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7) (3 分)
编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。
s = str(input())
b=len(s.split(" "))
c=len(s)
d=(c-b+1)/b
print("{},{:.2f}".format(b,d))
7-2 给顾客找零钱的方案 (3 分)
这是一个编程题。题目:本题目要求掌握数值运算中的整数除法和求余数运算,并掌握输入输出的方法。 商店需要找钱给顾客,现在有足够的张数,面值分别是50元5元和1元。输入一个整数金额值给出找钱方案,假设人民币足够多,且优先使用面额大的钱币。
s=eval(input())
m50=s//50
m5=s%50//5
m1=s%50%5
print("50元面额需要的张数:{}".format(m50))
print("5元面额需要的张数:{}".format(m5))
print("1元面额需要的张数:{}".format(m1))
7-4 数七游戏 (10 分)
数七游戏是一种常见的行酒令,即多个人围成一圈,由一个人喊一个数开始,后面的人依次+1报数,如碰到含7的数字或是7的倍数,则要喊pass。输入两个正整数数m,n(1<=m<=n),请统计[m-n]之间需要喊pass的次数。
s=input().split(",")
m=eval(s[0])
n=eval(s[1])
t=0
flag=1
if flag==1:
for i in range(1,n-m+1):
if (m+i)%7==0 or "7" in str(m+i):
t=t+1
else:
flag==0
if flag==1 and t!=0:
print(t)
else:
print("None")
7-5 整数的二进制相加 (30 分)
输入两个整数,大小在[0,63]之间。求它们的二进制和,二进制用8位表示。
a=eval(input())
b=eval(input())
print("{:0>8b}".format(a))
print("{:0>8b}".format(b))
print("{:->8}".format('-'))
print("{:0>8b}".format(a+b))
7-6 输入一行字符串,并将它转换成10进制数输出 (40 分)
输入一行字符串,去掉非16进制字符,并将它转换成10进制数输出。
a= input()
b = list(a)
c = []
for i in range(len(b)):
if 'a'<= b[i] <= 'f' or 'A' <= b[i] <= 'B' or '0'<= b[i] <= '9':
c.append(b[i])
result = ''.join(c)
print(result)
print(int(result,16))
7-7 计算M和N的多个结果 (10 分)
用户输入两个数M和N(用两个input语句输入),其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。
5种数学运算分别是:
M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值
M=eval(input())
N=eval(input())
print("{} {} {} {} {}".format(M+N,M*N,M**N,M%N,max(M,N)))
7-1 输出字符-单分支 (15 分)
输入一个字符,如果是小写字母,转换为其大写形式,其余字符不变。
s = input()
if 'a' <= s <= 'z':
print(chr(ord(s) - 32))
else:
print(s)
7-2 虫子吃苹果后,还剩下几个完整苹果 (10 分)
你买了一箱n个苹果,很不幸的是买来的时候,箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?'
s=input() n,x,y=(float(e) for e in s) t=y//x n-=t n=int(n-1 if y!=x*t else n) print(n)
7-3 数据比较 (10 分)
实现一个程序,用户输入四个数值(整数或浮点数)。先计算前三个数的平均值,然后把平均值与第四个数进行比较。如果相等,则程序在屏幕上输出“Equal”,如果平均值大于第四个数则输出“Larger”,否则输出“Smaller”
x1=eval(input())
x2=eval(input())
x3=eval(input())
x4=eval(input())
x5=(x1+x2+x3)/3
if x5==x4:
print('Equal')
elif x5>x4:
print("Larger")
else:
print("Smaller")
7-4 对于给定的正整数N,求它的位数及其各位数字之和。 (15 分)
给定的正整数N,求它的位数及其各位数字之和。
a = input()
sum = 0
count = len(a)
for i in range(0,len(a)):
sum = sum + int(a[i])
print(count,sum)
7-5 jmu-python-素数 (20 分)
输入一个数,判断其是否素数。素数是大于1的自然数中,除了1和它本身以外不再有其他因数。
a = int(input()) temp=False if a<=1: print(f'{a} is not prime') else: for i in range(2,a): if a%i==0: temp=True print(f'{a} is not prime') break if temp==False: print(f'{a} is prime')
7-6 折纸问题 (10 分)
一张纸厚0.2mm, 问至少对折多少次后,纸的厚度超过珠穆朗玛峰(8848m)
n=0.2/1000
m=0
while n<8848 :
n=n*2
m=m+1
print("折叠次数={}".format(m))
print("折叠后厚度={:.2f}".format(n))
7-7 jmu-python-统计成绩 (15 分)
输入一批学生成绩,计算平均成绩,并统计不及格学生人数。
x = int(input())
num = 0
count = 0
sum =0
if(x<0):
print("没有学生")
exit(0)
while x >= 0:
count = count+1
if x < 60:
num = num+1
sum = sum + x
x = eval(input())
ave = sum/count
if(count > 0):
print("平均分=%.2f,不及格人数=%d" % (ave, num))
if(num==0):
print("没有学生")
exit(0)
7-8 判断素数 (20 分)
判断一个给定的正整数是否素数
num = int(input())
for item in range(num):
a = int(input())
for j in range(2,a):
if a % j == 0:
break
else:
print('Yes')
continue
print('No')
7-9 往返跑方阵 (10 分)
所谓“往返跑方阵”,是指对任意给定的n,将1到n×n的整数依次填写到n×n的方阵中,从右上角第1个格子开始,向下填充;倒底后,往左移动一列,改变方向,向上填充;到最上面一行后,再向左一列,改变方向,向下填充;.…… 以此类推,直到将n×n的方阵填满。本题要求构造这样的“往返跑方阵”。
n=eval(input())
for j in range(n):
for i in range(n,1,-1):
if i%2==0:
print("{: >3}".format(n*i-j),end="")
else :
print("{: >3}".format(n*i-(n-1)+j),end="")
print("{: >3}".format(j+1))
7-10 jmu-python-异常-学生成绩处理基本版 (15 分)
小明在帮老师处理数据,这些数据的第一行是n,代表有n行整数成绩需要统计。
数据没有错误,则计算平均值(保留2位小数)并输出。
数据有错误,直接停止处理,并且不进行计算。
注:该程序可以适当处理小错误,比如对于有些数据如果左右包含空格,先去掉
空格再行处理。
s=int(input())
sum=0
count=0
c=0
for i in range(s):
a=input("")
b=a.strip()
flag=0
for j in b:
if j not in ['0','1','2','3','4','5','6','7','8','9']:
flag+=1
if flag==0:
sum=sum+eval(b)
else:
c=a
count+=1
break
if count==0:
print("All OK")
print("avg grade = {:.2f}".format(sum/s))
print("Process Completed")
else:
print("Error for data \"{}\"! Break".format(c))
print("Process Completed")
7-11 下标异常 (10 分)
输入一个非空的字符串,再输入一个索引值(Python中可以是正向索引,也可以是反向索引)
s=input()
try:
t=eval(input())
print(s[t])
except:
print("输入下标有误")
7-12 jmu-python-数据异常处理 (20 分)
输入一组数据,求平均值。要求:
- 数据正确,正确计算。
- 数据有错误,能异常处理,输出错误信息,不进行计算。
sum=0
n=int(input())
try:
for i in range(1,n+1):
m=eval(input())
sum=sum+m
avg=sum/n
print("正确")
print("avg={:.2f}".format(avg))
except NameError:
print("数值错误")
except ZeroDivisionError:
print("除0错误,n不能等0")
print("程序结束")
