2021练习题Python的

这篇博客涵盖了Python编程的一些基础和进阶练习,包括生成8位随机字符串,创建类的实例,根据用户名长度排序,实现继承与多态,计算斐波那契数列,定义自乘函数,用户交互及循环打印数字等挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,生成一组8位随机数,要求字符串的各元素组成为[1-9A-Za-z]

#coding=utf8
__author__ = "Marlon"


import random

if __name__ == '__main__':
    
    for i in range(10):
        aa = random.sample('1234567890abcdefghijklmnopqrstuvwxyz',8)
        
        print (''.join(aa))

2-1,根据下面的题设,创建类的实例化对象


'''
1,完成下列功能:
  1.1创建一个人类Person,再类中创建3个静态变量(静态字段)
    animal = '高级动物'
    soup = '有灵魂'
    language = '语言'
  1.2在类中定义三个方法,吃饭,睡觉,工作.
  1.3在此类中的__init__方法中,给对象封装5个属性:国家,姓名,性别,年龄,  身高.
  1.4实例化四个人类对象:
    第一个人类对象p1属性为:中国,alex,未知,42,175.
    第二个人类对象p2属性为:美国,武大,男,35,160.
    第三个人类对象p3属性为:你自己定义.
    第四个人类对象p4属性为:p1的国籍,p2的名字,p3的性别,p2的年龄,p3  的身高.
  1.5 通过p1对象执行吃饭方法,方法里面打印:alex在吃饭.
  1.6 通过p2对象执行吃饭方法,方法里面打印:武大在吃饭.
  1.7 通过p3对象执行吃饭方法,方法里面打印:(p3对象自己的名字)在吃饭.
  1.8 通过p1对象找到Person的静态变量 animal
  1.9 通过p2对象找到Person的静态变量 soul
  2.0 通过p3对象找到Person的静态变量 language

'''


class Person(object):
    animal  = "高级动物"
    soul = "有灵魂"
    language = "语言"

    def __init__(self,nation,name,gender,age,height):
        self.nation = nation
        self.name = name
        self.gender = gender
        self.age = age
        self.height = height
        pass

    def eat(self):
        print(self.name + ('在吃饭') )

    def sleep(self):
        pass

    def work(self):
        pass


p1 = Person('中国', 'alex', '未知', 42, 175)
p2 = Person('美国', '武大', '男', 35, 160)
p3 = Person('China','Marlon','man', 24,163)
p4 = Person('中国','武大', 'man', 35, 163)


# 执行脚本
p1.eat()
p2.eat()
p3.eat()

print(p1.animal)
print(p2.soul)
print(p3.language)

2-2,根据下面的题设,创建类的实例化对象

'''
  2,通过自己创建类,实例化对象
  在终端输出如下信息
  小明,10岁,男,上山去砍柴
  小明,10岁,男,开车去东北
  小明,10岁,男,最爱大保健
  老李,90岁,男,上山去砍柴
  老李,90岁,男,开车去东北
  老李,90岁,男,最爱大保健

'''

class myPerson(object):
    soul = "有灵魂"

    def __init__(self, name, age, gender ):
        self.name = name
        self.age = age
        self.gender = gender

    def chop_wood(self):
        print('{0},{1},{2}'.format(self.name,self.age,self.gender) + ',上山去砍柴')

    def drive_car(self):
        print('{0},{1},{2}'.format(self.name, self.age, self.gender) +
              ',开车去东北')

    def eat_food(self):
        print('{0},{1},{2}'.format(self.name, self.age, self.gender) +
              ',最爱大保健')


p1 = myPerson('小明','10岁','男')
p1.chop_wood()
p1.drive_car()
p1.eat_food()

3,根据用户名长度给列表元素排序

"""
根据用户名长度给列表元素排序
names = ['Socrates', 'Archimedes', 'Plato', 'Aristotle']
"""

func = lambda x: len(x) 
names = ['Socrates', 'Archimedes', 'Plato', 'Aristotle']
names.sort(key= func)
print(names)

4,定义1个类,既执行基类的方法,又执行子类的方法

#既要执行父类的实例化方法,又要执行子类的实例化方法
class Animal:

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

    def eat(self,a1):
        print('%s吃%s' % (self.name,a1))

    def drink(self):
        print('%s喝东西' % (self.name))


class Brid(Animal):

    def __init__(self, name,sex,age,wing): # self b1对象 name '鹦鹉',sex '公',age 20,  wing '绿翅膀'
        '''
        self=b1对象
        name='鹦鹉'
        sex='公'
        age= 20,
        wing='绿翅膀'
        '''
        super().__init__(name,sex,age)  #  super(Brid,self).__init__(name,sex,age)
        self.wing = wing
    def bark (self):
        print('嗷嗷叫')

    def eat(self,argv):
        super().eat(argv)
        print('鸟吃虫子...')

b1 = Brid('鹦鹉','公',20,'绿翅膀')
print(b1.__dict__)
b1.eat('零食')

5,使用python中的列表和for循环计算“斐波那契数列”的前10项。(斐波那契数列是一种数列,其中每个数都是前两个数的和)

基本

fibs = [0, 1]
for i in range(8):
    fibs.append(fibs[-2]+fibs[-1])

print(fibs)

高级

num = input('How many number do you want? ')
num = int(num)


def fibs(num):
    result = [0, 1]
    for i in range(num-2):
        fibs.append(result[-2]+result[-1])
    print(result)
    return result


fibs(num)

6,假设你要计算幂,就像运算符**所做的那样。定义: power(x, n)( x的n次幂)是将数
字x自乘n - 1次的结果,即将n个x相乘的结果。

def power(x, n):
    result = 1
    for i in range(n):
        result *= x
    return result

递归

def power(x, n):
    if n == 0:
        return 1
    else:
        return x * power(x, n - 1)

7,  写一个小程序,检测用户在终端的输入名字,然后打印输出:Hello,xxx ,之后退出程序。

name = ''
while not name:
    name = input('Please enter your name: ')
print('Hello,{a}'.format(a = name ))

8,  写出1个小程序,打印数字1~100 ,要求使用for循环。

for number in range(1, 101):
    print(number)

9, 给定2个list列表,将它们的元素拼接打印输入格式如:anne is 12 years old

names = ['anne', 'beth', 'george','damon']
ages = [12, 45, 32, 102]

'''
一个很有用的并行迭代工具是内置函数zip, 它将两个序列“缝合”起来,
并返回一个由元组组成的序列,可使用list() 将其转换为列表。
'''
# “缝合”后,可在循环中将元组解包。
for name,age in zip(names,ages):
    print(name, 'is', age, 'years old')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康冕峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值