python练习题1
2021/9/25 17:12:11
本文主要是介绍python练习题1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.利用for循环求1~100中所有数的和、所有奇数和以及偶数的和。
sum=0 for i in range(1,101): sum+=i sum
sum=0 for i in range(1,101,2): sum+=i Sum
sum=0 for i in range(2,101,2): sum+=i sum
2.输入若干学生成绩(按Q或q结束),如果成绩<0,则重新输入。统计学生人数和平均成绩。
num = 0 score = 0 while True: s = input('请输入学生成绩:') if (s == 'Q') or (s == 'q'): break if float(s) < 0: print("请重新输入:") continue num += 1 score += float(s) print("班级学生数为:{0},平均分为:{1}".format(num, score / num))
3.显示100~200之间不能被3整除的数,要求一行显示10个数。
n = 0 for i in range(100, 201): if i % 3 == 0: print(i, end=' ') n += 1 if n % 10 == 0: print("\n")
4.编写程序(prime1.py)判断所输入的任意一个正整数是否为素数。
n1 = int(input("请输入一个正整数:")) n2 = int(n1 / 2) if n1 < 4: if n1==1: print("{0}不是素数".format(n1)) else: print("{0}是素数".format(n1)) else: for j in range(2, n2 + 1): if n1 % j == 0: print("{0}不是素数".format(n1)) break if j == n2: print("{0}是素数".format(n1))
5.编写程序实现根据考试成绩将成绩分为A,B,C,D,E五档,其中100-90为A档,89-80为B档,79-70为C档,例如69-60为D档,例如59-0为E档(不及格)。
score=float(input("请输入一个0到100之内的数:")) if score>=90 and score<=100: print("A") elif score>=80: print("B") elif score>=70: print("C") elif score>=60: print("D") else: print("E")
6.编写程序,产生两个0—100之间的随机整数a 和b,求这两个整数的最大公约数和最小公倍数。
import random a = m = random.randint(0, 100) b = n = random.randint(0, 100) temp = 0 if a > b: while b != 0: temp = a % b a = b b = temp x = (m * n) / a print("{0},{1}的最大公约数为:{2},最小公倍数为:{3}".format(m, n, a, x)) else: while a != 0: temp = b % a b = a a = temp x = (m * n) / b print("{0},{1}的最大公约数为:{2},最小公倍数为:{3}".format(m, n, b, x))
7.编写程序,输入一元二次方程的三个系数a,b和c, 求ax2+bx+c=0方程的解。考虑解的如下情况:a=0 and b=0 无解;a=0 and b!=0,有一个实根; b2-4ac=0,有两个相等实根;b2-4ac>0,有两个不相等实根。
import math a = float(input("输入数a:")) b = float(input("输入数b:")) c = float(input("输入数c:")) if a == 0 and b == 0 or b ** 2 - 4 * a * c < 0: print("该方程无解!") elif a == 0 and b != 0: print("该方程的解为:{0}".format((-c) / b)) elif b ** 2 - 4 * a * c == 0: print("该方程有两个相同的解为{0}".format((-b) / 2 * a)) elif b ** 2 - 4 * a * c > 0: x = math.sqrt(b ** 2 - 4 * a * c) print("该方程有两个不相同的解为{0},{1}".format((x - b) / 2 * a, (-b - x) / 2 * a))
8.编写程序,输入x,根据如下公式计算分段函数y的值,请分别利用单分支语句、双分支语句以及条件运算表达式语句实现。
import math x = int(input("请输入一个整数X:")) if x >= 0: y = math.sin(x) + 2 * math.sqrt(x + math.e ** 4) - (x + 1) ** 3 else: y = math.log(math.e, -5 * x) - (math.fabs(x ** 2 - 8 * x)) / 7 * x + math.e print("y={0}".format(y))
9.编写程序,输入三角形的三条边,先判断是否可以构成三角形,如果可以则进一步求三角形的周长和面积,否则报错“无法构成三角形!”。
import math a = float(input("输入数a:")) b = float(input("输入数b:")) c = float(input("输入数c:")) if a + b > c and a + c > b and b + c > a and a > 0 and b > 0 and c > 0: c1 = a + b + c p = c1 / 2 s = math.sqrt(p * (p - a) * (p - b) * (p - c)) print("该三角形的周长为:{0},面积为:{1}".format(c1, s)) else: print("无法构成三角形!") 10.打印1-10之间的整数,但是把2,5,7,8这4个数除外。 for i in range(1,11): if i not in [2,5,7,8]: print(i,end=" ")
11.用map()函数把 list1 = [13,445,6,65 ‘887’,‘234’,34,‘3455’,‘234’], 变成list2 = [13,445,6,65,887,234,34,3455,234] (把list1中的元素全变成int类型)。
list1 = [13,445,6,65,'887','234',34,'3455','234'] list2=list(map(int,list1)) print(list2)
12.用filter()函数去掉 list1 = [1,2,3,12,34,21,23,12,3] 中的偶数。
def f(x): return x%2!=0 list1 = [1, 2, 3, 12, 34, 21, 23, 12, 3] list2=list(filter(f,list1)) print(list2)
13.假设有若干个学生以及成绩,存放在学生字典westosX中,学生分数在60~100之间,筛选出成绩在90分以上的学生情况。
import random info={} for i in range(20): name='westos'+str(i) score=random.randint(60,100) info[name]=score scoreInfo={} for name,score in info.items(): if score>90: scoreInfo[name]=score print(scoreInfo)
14.用reduce()函数求:1+2+…100。
from functools import reduce x = reduce(lambda a,b:a+b,range(1,101)) print(x)
15.写函数,利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。
def f(x,x1,x2): if x==10: return x1 x3=x1+x2 a=f(x+1,x2,x3) return a num=f(1,0,1) print(num)
16.写函数,检查获取列表或元组的对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def getA(x): list2=[] j=0 for i in x: j+=1 if j% 2 != 0: list2.append(i) return list2 list1 = (1, 3, 4, 5, 6, 7) print(getA(list1))
17.写函数,计算传入字符串中数字、字母、空格以及其他的字符的个数。
def sumA(s): n=0 m=0 k=0 l=0 for i in s: if i.isalpha():#字母 n+=1 elif i.isdigit():#数字 m+=1 elif i.isspace(): #空格 k+=1 else: #其他 l+=1 return "{0}字符串中字母个数为:{1},数字个数为:{2},空格个数为:{3},其他字符为:{4}".format(s,n,m,k,l) s='abc123 a9#' print(sumA(s))
18.编写一个函数cacluate, 可以接收任意多个数, 返回的是一个元组.元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有值。
def cacluate(*x): avg=sum(x)/len(x) list1=[] for i in x: if i>avg: list1.append(i) return avg,list1 a = cacluate(1,2,3,4,5) print(a,type(a))
19.编写函数, 接收一个列表(包含30个1~100之间的随机整形数)和一 个整形数k, 返回一个新列表。函数需求:
- 将列表下标k之前对应(不包含k)的元素按升序排列;
- 将下标k及之后的元素按降序排列;
import random list1 = [] for i in range(30): list1.append(random.randint(1, 100)) def sart(alist, k): list2 = [] list3 = [] for j in range(len(alist)): if k > j: list2.append(alist[j]) else: list3.append(alist[j]) list2.sort() list3.sort(reverse=True) return list2 + list3 print(sart(list1, 10))
20.编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
假设为程序提供了以下输入:New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.
import re strs='New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.' result = re.sub('\W+', ' ', strs).replace("_", ' ') resultList=result.split() resultNum=[] for i in resultList: resultNum.append(resultList.count(i)) d=dict(zip(resultList,resultNum)) print(d)
这篇关于python练习题1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南