一些基础编程题的更优解

练习1:输入三个整数x,y,z,请把这三个数由小到大输出。 #程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换, 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
list1 = []
for i in range(3):
    list1.append(input('请输入整数:\n'))
list1.sort(reverse=True)
"""
sort()方法语法:
list.sort( key=None, reverse=False)
-- key -- 主要是用来进行比较的元素,只有一个参数,
            具体的函数的参数就是取自于可迭代对象中,
            指定可迭代对象中的一个元素来进行排序
            
-- reverse -- 排序规则,reverse = True 降序, 
                        reverse = False 升序(默认)。
"""
print(list1)
练习2:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,# 加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,# 再将第一位和第四位交换,第二位和第三位交换。#输入的这四个数字,经过算法之后,得出最后结果输出
list1 = []
list2 = []
for i in range(4):
    list1.append(input('请输入数字:\n'))
    print(list1)
    ni = int(list1[i])
    ni += 5
    ni %= 10
    list2.append(ni)
# ::取全部,-1表示倒序
print(list2[::-1])
练习3:定义函数,函数实现的功能是输出"hello world" 利用修饰器增加功能,传递新的参数为你在控制台输入的内容,在hello World 下方输出你传入的参数 注:使用函数文档,表明此修饰函数调用的过程以及各个函数所代表的功能
def decorator(new_func):
    def inner(name=input('please input name:')):
        # 这里才是真正的调用hello_word
        new_func()
        print(name)
    # 注意返回函数,返回函数的名字,如果加()等于调用这个函数
    return inner

@decorator
def hello_word():
    print('hello world!')

#这里调用的是decorator
hello_word()
练习4:编写程序, 编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生.
class Student(object):
    __count = 0

    def __init__(self,name,age):
        self.name = name
        self.age = age
        Student.__count += 1

    @staticmethod
    def tell_count():
        print('总共实例化了{}个学生'.format(Student.__count))

student1 = Student('zs',19)
student2 = Student('ls',20)
Student.tell_count()
练习5:模仿王者荣耀定义两个英雄类

要求:英雄需要有昵称、攻击力、生命值等属性;实例化出两个英雄对象;

英雄之间可以互殴,被殴打的一方掉血,血量小于0则判定为死亡(提示:这里是函数)

class Hero(object):

    def __init__(self,nikname,aggresivity,life_score):
        self.nikname = nikname
        self.aggresivity = aggresivity
        self.life_score = life_score

    def attact(self,enemy):
        # enemy 被殴打的英雄的血量
        # self.aggresivty 打人的英雄的攻击力
        enemy.life_score -= self.aggresivity
        if enemy.life_score < 0:
            print('die')

class Devid(Hero):
    pass

class Hie(Hero):
    pass

h1 = Devid('lala',30,100)
h2 = Hie('nene',20,90)
h1.attact(h2)
print(h1.life_score)#100
print(h2.life_score)#60
练习6定义一个学生类。有下面的类属性:1 姓名 str2 年龄 int3 成绩(语文,数学,英语)[每课成绩的类型为整数 list1 获取学生的姓名:get_name() 返回类型:str2 获取学生的年龄:get_age() 返回类型:int3 返回3门科目中最高的分数。get_course() 返回类型:int写好类以后,可以定义2个同学测试下:
class Student(object):
    def __init__(self,name,age,score):
        self.name = name
        self.age = age
        self.score = score

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age

    def get_score(self):
        return max(self.score)

stu1 = Student('zhangming',20,[69,88,100])
print(stu1.get_age(),stu1.get_age(),stu1.get_score())
练习7:已知列表 info = [1,2,3,4,55,233],生成列表个数的线程对象,每次线程输出一个值,最后输出:“the end”
import threading
s = []

#线程执行的方法,
def func1(p):
    print(p)

#创建线程的函数
def func2(info):
    for i in range(len(info)):
        # 创建线程
        th = threading.Thread(target=func1,args=[info[i]])
        # 启动线程
        th.start()
        # 将创建的线程装入数组
        s.append(th)
    for i in range(len(info)):
        # 线程等待,等待指定进程执行完毕在执行后面的代码
        s[i].join()
    print('the end')

#列表的对象
info = [1,2,3,4,55,233]
func2(info)

​ 以上题目基本都是python基础,但是自己的解题方法确还是停留在很low的表达方式,以后我一定要多学习大牛的编程思路,没想到程序可以这样玩!真的感觉自己简直就是学了皮毛!从今天起要更加刻苦,争取早日成为大牛!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值