python练习题

  1. 编写程序,输入三个整数,按照从小到大的顺序进行排序输出。
x=input("x=")   

y=input("y=")

z=input("z=")

if x>=y:

    x,y=y,x

if x>=z:

   x,z=z,x

if y>=z:

    y,z=z,y

print(x,y,z)
  1. 编写程序,输入一个月份,输出该月的天数。(不考虑闰年情况)。

month=int(input("请输入一个月份(1-12):\n"))
if 0<month<13:
    monthDay=[
31,28,31,20,31,30,31,31,30,31,30,31]
   
if month==2:
        year=
int(input("请输入一个年份:"))
       
if year%400==0 or year%4==0 and year%100!=0:
           
print("二月有29天")
       
else:
           
print("二月有28天")
   
else:
       
print(month,"月有",monthDay[month-1],"天")
else:
   
print("请输入正确的月份")

3.编写程序,输入一个月份,输出该月份所属的季节。

month=int(input("请输入一个月份(1-12):\n"))

if 0<month<13:

    if 3<=month<=5:

        print("这个月是春季")

    if 6 <= month <= 8:

        print("这个月是夏季")

    if 9 <= month <= 11:

        print("这个月是秋季")

    if 1 <= month <= 2 or month==12:

        print("这个月是冬季")

else:

    print("请输入正确的月份")

4.编写程序,输入两个整数m和n,判断m和n的符号情况,如果m和n的符号相同(都是正数或都是负数)返回1,如果一正一负返回-1 ,如果其中1个为0或者两个都为0返回0。

i=int(input("i="))

j=int(input("j="))

if i*j==0:

    print("0")

if i*j<0:

    print("-1")

if i*j>0:

    print("1")

5.编写程序,使用循环语句求1+2+3+…+100的和。

i=0

j=0

while i<100:

    i+=1

    j+=i

print(j)

6.编写程序,输入一个正整数n,使用循环语句求n!。

k=int(input("请输入一个数:\n"))

i=0

j=0

while i<k:

    i+=1

    j+=i

print(j)

7.编写程序,输出1949~2023之间所有的闰年。

a=1949

while 1949<=a<2023:

    a+=1

    if a%400==0 or a%4==0 and a%100!=0:

        print("闰年有:\n",a)

8.编写程序,输入一个包含若干个整数的列表ls,输出其中所有负数的和。

ls = input("请输入一个包含若干个整数的列表,用空格分隔:").split()

sum = 0

for num in ls:

    if int(num) < 0:

        sum += int(num)

print("所有负数的和为:", sum)

9.编写程序,输入一个包含若干整数的列表lst,输出其中最大的奇数。

lst = input("请输入一个包含若干整数的列表,以空格分隔:").split()  # 将输入的字符串转换为列表

max_odd = None  # 定义最大奇数变量,初始值为None



for num in lst:

    if int(num) % 2 == 1# 判断是否为奇数

        if max_odd is None or int(num) > max_odd:  # 如果当前数是奇数并且大于之前的最大奇数,则更新最大奇数

            max_odd = int(num)



if max_odd is None# 如果列表中没有奇数,则输出提示信息

    print("列表中没有奇数")

else:

    print("最大的奇数为:", max_odd)

10.编写程序,输入一个包含若干整数的列表lst,首先计算其中的最大值,然后返回该最大值在列表lst中所有出现位置组成的新列表。例如,lst为[1,2,3,3]时返回[2,3]。

def find_max_positions(lst):

    max_val = max(lst) # 计算出列表中的最大值

    positions = [i for i, val in enumerate(lst) if val == max_val] # 计算最大值在列表中的所有出现位置

    #enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,

    return positions

lst = [1, 2, 3, 3]

print(find_max_positions(lst))

11.编写程序,输入一个自然数num,输出num各位数字中最大的整数。

num = input("请输入一个自然数:")

max_num = 0

for i in num:

    if int(i) > max_num:

        max_num = int(i)

print("最大的整数是:", max_num)

12.编写程序,输入两个两个正整数m和n,求这m和n的最大公约数和最小公倍数。( 两个数的最小公倍数 = 两个数的乘积 / 两个数的最大公约数)。

m = int(input("请输入一个正整数m:"))

n = int(input("请输入一个正整数n:"))

# 求最大公约数

def gcd(x, y):

    if x < y:

        x, y = y, x

    while y != 0:

        r = x % y

        x = y

        y = r

    return x



# 求最小公倍数

def lcm(x, y):

    return x * y // gcd(x, y)



print("最大公约数为:", gcd(m, n))

print("最小公倍数为:", lcm(m, n))

13.编写程序,输入一个正整数n,输出斐波那契数列中第n个数的值。

n = int(input("请输入一个正整数n:"))

fibonacci = [0, 1# 斐波那契数列的前两个数为0和1

for i in range(2, n+1):

    fibonacci.append(fibonacci[i-1] + fibonacci[i-2])  # 计算第i个数并添加到数列中

print("斐波那契数列中第", n, "个数的值为:", fibonacci[n])

14.编写程序,读取文本文件sample.txt的全部内容,以及一行中包含字符最多的首次出现在第几行。

with open(r'C:\Users\86184\Desktop\sample.txt','r',encoding="utf-8") as fp:

    result = []

    for line in fp:

        print(line,end='')

        result.append(len(line))

mx=max(result)

mn=min(result)

mxRow=result.index(mx)+1

mnRow=result.index(mn)+1

print("\n总行数是:",len(result))

print("包含字符最多的首次出现在第{0}行".format(mxRow))

print("包含字符最少的首次出现在第{0}行".format(mnRow))

15.读取一个Python源程序文件,去掉其中的空行和注释,然后写入另一个文件。

with open(r'C:\Users\86184\Desktop\sample.txt', 'r', encoding='utf-8') as fr, open(r'C:\Users\86184\Desktop\new.txt', 'w', encoding='utf-8') as fd:

    for text in fr.readlines():

        if text.split():

            fd.write(text)

    print('输出成功....')

16.编写函数IsPrime(n),判断正整数n是否为素数,要求n>1,并编写测试代码。

def IsPrime(n):

    if n <= 1:

        return False

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

        if n % i == 0:

            return False

    return True



# 测试代码

print(IsPrime(2)) # True

print(IsPrime(3)) # True

17.编写函数IsPerfectNum(n),判断整数n是否为完数,要求n>1,并编写测试代码。完数是指一个数恰好等于它的因子之和,如6=1+2+3。

def IsPerfectNum(n):

    if n <= 1:

        return False

    else:

        sum = 1

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

            if n%i == 0:

                sum += (i + (n//i))    # 将因子i与n/i同时加入求和中

        return sum == n

print(IsPerfectNum(7))

18.编写程序,创建基类Person,其成员包括私有实例属性name、age和sex,实例方法setName()、setAge()和setSex()分别用来给实例属性赋值,实例方法show()用来输出3个实例属性的值; 创建派生类Employee,继承Person类,新增实例属性salary(工资),新增实例方法setSalary (),用来设置实例属性salary的值,重写基类的实例方法show(),输出所有实例属性的值。使用__init__()构造方法完成Person类和Employee类的对象初始化工作,并编写测试代码。

class Person:



    def __init__(self, name, age, sex):

        self.name = name



        self.age = age



        self.sex = sex



    def setName(self, name):

        self.name = name



    def setAge(self, age):

        self.age = age



    def setSex(self, sex):

        self.sex = sex



    def show(self):

        print(self.name, self.age ,self.sex)





class Employee(Person):



    def __init__(self, name, age, sex, salary):

        Person.__init__(self, name, age, sex)



        self.salary = salary



    def setSalary(self, salary):

        self.salary = salary



    def show(self):

        print(self.name, self.age, self.sex, self.salary)

19. 编写程序,创建基类Vehicle,其成员包括实例属性brand(品牌)和color(颜色),实例方法showInfor()用来输出实例属性brand和color的值;创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),重写基类的实例方法showInfor()输出所有实例属性的值。利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码。

class Vehicle:

    def __init__(self, brand, color):

        self.brand = brand

        self.color = color



    def showInfor(self):

        print("Brand:", self.brand)

        print("Color:", self.color)





class Car(Vehicle):

    def __init__(self, brand, color, seat):

        super().__init__(brand, color)

        self.seat = seat



    def showInfor(self):

        super().showInfor()

        print("Seat:", self.seat)

20. 编写程序,创建基类Shape,其成员包括实例属性color(颜色),实例方法getColor()、setColor()分别用来获取和设置实例属性color的值;创建派生类Rectange,继承Shape类,新增实例属性length(长)和width(宽),新增实例方法getArea()用来获取长方形的面积。利用__init__()构造方法完成Shape和Rectange类的对象初始化工作,并编写测试代码。

class Shape:

    def __init__(self, color):

        self.color = color



    def getColor(self):

        return self.color



    def setColor(self, color):

        self.color = color





class Rectangle(Shape):

    def __init__(self, color, length, width):

        super().__init__(color)

        self.length = length

        self.width = width



    def getArea(self):

        return self.length * self.width

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值