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("程序结束")