Python 随堂练习

目录

1.键盘输入一个字符,判断该字符是字母,还是数字字符,还是其他字符

2. 从键盘输入一串字符,统计字母、数字或者其他字符的个数

3.用while循环实现 s=1+3+5+7+……<=n

4.输出100-200之间的所有的不能被3整除的数

5.键盘输入,判断该数是否是素数

6.键盘输入十个同学的成绩,求总成绩,平均成绩,求成绩的最高分

7. 输入多个同学的成绩,求总成绩,平均成绩,要求每次输入成绩后都要询问是否要继续输入,按y继续输入,按n结束输入

8.定义一个函数,实现求n!

9.定义一个函数,接收一个参数,实现判断该数是否是素数

10.编写一个函数,接收某一年为参数,判断该年是否是闰年。(闰年的条件是能被4整除但不能被100整除或者能被400整除)

11.编写一个函数,统计一串字符中字母、数字、其他字符的个数,并将结果存在一个列表中,列表的第1、2、3个元素分别为字母个数、数字个数、其他字符的个数

12.输出100以内的最大的三个素数

13.定义一个类Cirle,其中在类中实现获得圆的面积方法、圆的半径的方法,以及显示圆的半径和面积的方法。

14.定义一个至少有两个方法的类:getString:从控制台输入获取字符串,printString:打印大写母的字符串。 




1.键盘输入一个字符,判断该字符是字母,还是数字字符,还是其他字符

s=input("请输入一个字符:")
if len(s)==1:
    if s.isdigit():
        print("这是一个数字")
    elif ch.isalpha():#ch.islower() or ch.isupper()
        print("这是一个字母")
    else:
        print("判断不出")
else:
    print("字符过长")

2. 从键盘输入一串字符,统计字母、数字或者其他字符的个数

s=input("请输入字符串:")
d=dict()
for ch in s:
    d[ch]=d .get(ch,0)+1
for k,z in d.items():
    print(k,"有",z,"个")

3.用while循环实现 s=1+3+5+7+……<=n

a,s=1,1
n=int(input("请输入一个奇数:"))
while a<n:
    a=a+2
    s=s+a
print("1+3+...+",n,"=",s)

4.输出100-200之间的所有的不能被3整除的数

for i in range(100,201):
    if i%3!=0:
        print(i,end=" ")

5.键盘输入,判断该数是否是素数

n=int(input("请输入一个数:"))
if n==1:
    print("是个素数")
elif n%2==0:
    print("不是个素数")
else:
    for i in range(3, int(n ** 0.5) + 1,2):
        if n % i == 0:
            print("不是个素数")
            break
    else:
        print("是个素数")

6.键盘输入十个同学的成绩,求总成绩,平均成绩,求成绩的最高分

score=[]
maxscore=int(input("满分分值分为:"))
while len(score)<10:
    try:
        x=float(input("请输入同学的成绩:"))
        assert 0<=x<=maxscore
        score.append(float(x))
    except:
        print("输入的分数有误!!!")
print("总成绩为:",sum(score))
print("平均成绩为:",sum(score)/10)
print("最高分数为:",max(score))

7. 输入多个同学的成绩,求总成绩,平均成绩,要求每次输入成绩后都要询问是否要继续输入,按y继续输入,按n结束输入

score=[]
maxscore=int(input("满分分值分为:"))
while True:
    try:
        x=float(input("请输入同学的成绩:"))
        assert 0<=x<=maxscore
        score.append(float(x))
    except:
        print("输入的分数有误!!!")
    while True:
        f=input("是否继续输入:Y/N/y/n:")
        if f not in ('Y','N','y','n'):
            print("输入的字符不对")
        else:
            break
    if f=='N' or f=='n':
         break
s=float(len(score))
print("总成绩为:",sum(score))
print("平均成绩为:",sum(score)/s)
print("最高分数为:",max(score))

8.定义一个函数,实现求n!

def njc(n):
    s=1
    for i in range(1,n+1):
        s=s*i
    print(s)
n=int(input("请输入一个数:"))
njc(n)

9.定义一个函数,接收一个参数,实现判断该数是否是素数

def sushu(n):
    if n==1:
        print("是个素数")
    elif n%2==0:
        print("不是个素数")
    else:
        for i in range(3, int(n ** 0.5) + 1,2):
            if n % i == 0:
                print("不是个素数")
                break
        else:
            print("是个素数")
n=int(input("请输入一个数:"))
sushu(n)

10.编写一个函数,接收某一年为参数,判断该年是否是闰年。(闰年的条件是能被4整除但不能被100整除或者能被400整除)

def year(y):
    if y%4==0 and y%100!=0 or y%400 ==0:
        print("闰年")
    else:
        print("不是闰年")
y=int(input("请输入年份:"))
year(y)

11.编写一个函数,统计一串字符中字母、数字、其他字符的个数,并将结果存在一个列表中,列表的第1、2、3个元素分别为字母个数、数字个数、其他字符的个数

def tj(s):
    x=[0,0,0]
    for ch in s:
        if ch.isalpha():#ch.islower() or ch.isupper():
            x[0]=x[0]+1
        elif ch.isdigit():
            x[1]=x[1]+1
        else:
            x[2]=x[2]+1
    print(f"字母个数:{x[0]},数字个数:{x[1]},其他字符个数:{x[2]}")
    # print("字母个数:{0},数字个数:{1},其他字符个数:{2}".format(x[0],x[1],x[2]))
    # 简单的:print(x)
s=input("请输入字符串:")
tj(s)

12.输出100以内的最大的三个素数

a=[]
for i in range(100,0,-1):
    for j in range(2,int(i ** 0.5) + 1):
        if i%j==0:
            break
    else:
        a.append(i)
print(a[:3:])

13.定义一个类Cirle,其中在类中实现获得圆的面积方法、圆的半径的方法,以及显示圆的半径和面积的方法。

from math import *
class circular():
    def __init__(self,radius):
        self.radius=radius
    def get_circular_size(self):
        return pi*self.radius*self.radius
    def get_radius(self):
        return self.radius
    def show_radius_size(self):
        print("半径{0};面积{1:.2f}".format(self.radius,pi*self.radius*self.radius))    
            #可以简单的print("半径",self.radius,"面积",pi*self.radius*self.radius)
try:
    r=float(input("请输入半径:"))        #嫌麻烦可以不用try...except
except:                                  #直接r=r=float(input("请输入半径:"))   
    print("输入的半径有误")
r1=circular(r)
r1.get_radius()
r1.get_circular_size()
r1.show_radius_size()

14.定义一个至少有两个方法的类:getString:从控制台输入获取字符串,printString:打印大写母的字符串。 

class strr(object):
    def __init__(self):
        self.s = ""
    def getString(self):
        print('请输入字符串:')
        self.s = input()
    def printString(self):
        print(self.s.upper())
s1 = strr()
s1.getString()
s1.printString()

------------分割线---------------

菜鸟古古 2022-1-4 09:52:33

                2022年1月5日16:30:34

                        1.修改了1、11题的判断字母和11题输出语句

                        2.修改了素数第三次判断-原来:for i in range(3, int(n ** 0.5) + 1)

                                                                之后:for i in range(3, int(n ** 0.5) + 1,2):

                        3.添加了7题的满分分值选择:maxscore

                        4.添加了13.14题

                2024年6月14日17:38:51更新目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值