zoukankan      html  css  js  c++  java
  • python基础练习题1

    深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python。加油!

    01:求‘1-100’的偶数和

    #第一种解法:
    sum=0  
    num=0
    while num<101:
        num+=1
        if num%2==0:
            sum+=num
    print(sum)
    
    #第二种解法:
    sum=0
    for i in range(2,101,2):
        sum+=i
    print(sum)
    
    #第三种解法;
    sum=0
    for i in range(1,101):
        if i%2==0:
         sum+=i
    print(sum)

    02:求1-100的奇数,质数

    #奇数
    sum=0
    for i in range(1,101if i%2!=0
       sum+=i
    print(sum)
    
    #质数
    sum=0
    for i in range(2,101):
    for j in range(2,i):
    if i%j==0:
    break
    else:
    sum+=i
    print('1-100之间的质数之和:%d'%sum)

     03:写出九九乘法表

    for i in  range(1,10):  #把1,2,3,,赋值给i
             for  j  in  range(1,i+1):# 在i的基础上给j赋值,比如i=1 j=(1,2)取1  i=2 j=(1,2,3) 取1,2
    
                  print(‘&s*%s=%s’%(j,i,j*i),end='  ') end 就是计算每个结尾处加空格
    
             print()

      

    04:手动输入一个字符串,打散放进一个列表,小写字母反序,大写字母保持不变

    思路:

    1. 将手动传入的字符串用list函数将其打散成为一个列表1
    2. 循环列表1,判断每个元素字母的大小写
    3. 小写:将其追加到一个新列表2中
    4. 大写:记录下其索引及元素值到一个字典中
    5. 循环完成后,将新列表中所有的小写元素反转
    6. 循环遍历字典,将键值对应的添加到列表2中
    7. 循环完成后,输出列表2
    1 string = input('请输入一个字符串:')
     2 # 将输入的字符串打散到lists列表中
     3 lists = list(string)
     4 # 创建一个新列表用来存放变换后的数据
     5 new_lists = []
     6 # 创建一个字典,用来存放大写字母的索引及其对应的值
     7 dictionary = {}
     8 i = 0
     9 while i < len(lists):
    10     if 'a' < lists[i] < 'z':
    11         # 小写,按照顺序存放到new_lists列表中
    12         new_lists.append(lists[i])
    13     else:
    14         # 大写,将索引及其对应的值存放在dictionary
    15         dictionary[i] = lists[i]
    16     i += 1
    17 
    18 # 反转列表(小写字母元素)
    19 new_lists.reverse()
    20 # 循环遍历字典,将键值对应的添加到new_lists列表中
    21 for key in dictionary:
    22     new_lists.insert(key, dictionary[key])
    23 
    24 print(new_lists)

    05:定义一个函数mysort,参数是一个列表,参数列表中都是整数,mysort函数需要将参数列表元素从小到大排序,最终返回一个新的list

    思路:
    1.创建一个新的列表newlist
    2.先找出所有元素中最小的,append在newlist里面
    3.再找出剩余所有元素中最小的,append在newlist中
    4.依次类推,直到所有元素放到newlist里面
    def myshort(inlist):
    newlist=[]

    while len(inlist)>0:
    theMin = inlist[0] #记录当前循环最小的元素
    minIdx=0 #记录当前最小元素的下标
    idx=0 #指向当前元素的下标
    for one in inlist:
    if theMin>one:
    theMin=one
    minIdx=idx
    idx+=1

    inlist.pop(minIdx)
    newlist.append(theMin)
    return newlist

    print(myshort([1,3,5,45,67,4,7,34]))

     06:li=[1,2,3,4,5,6,7,8,8]组成多少个互不相同且不重复的两位数

    li=[1,2,3,4,5,6,7,8,8]
    li1=[]
    li2=[]
    for i in li:
        for j in li:
            if i!=j:
                a='%d%d'%(i,j)
                li1.append(a)
    for y in li1:
        if y not in li2:
            li2.append(y)
    print(li2)

    07:一个冒泡排序

    分析:
    [9, 2, 3, 5, 1, 2, 8] 列表长度为7
    假设是9(即索引0),则最多交换 (7-1)-0 = 6 次
    假设是2(即索引1),则最多交换 (7-1)-1 = 5 次
    推理:假设索引为index,则最多交换 (列表长度-1-index) 次
    
    def sort(alist):
        for i in range(len(alist)):#循环次数
            #跳过后面已经排序好的元素
            for j in range(len(alist)-1-i):#遍历所有数  根据列表索引位置判断应该交换几次
                if alist[j] > alist[j+1]:
                    alist[j],alist[j+1]= alist[j+1],alist[j]
        return alist
    a=[12,35,99,19,1]
    print(sort(a))

    08:

    """
    一、定义一个学生Student类。有下面的类属性:
    1 姓名 name
    2 年龄 age
    3 成绩 score(语文,数学,英语) [每课成绩的类型为整数]


    类方法:
    1 获取学生的姓名:get_name() 返回类型:str
    2 获取学生的年龄:get_age() 返回类型:int
    3 返回3门科目中最高的分数。get_course() 返回类型:int


    写好类以后,可以定义2个同学测试下:
    zm = Student('zhangming',20,[69,88,100])
    返回结果:
    zhangming
    20
    100
    """

    class Student():
        #构造函数
        #对当前对象的实例的初始化
        def __init__(self,name,age,score):
            self.name=name
            self.age=age
            self.score=score
        #isinstance函数判断一个对象是否是一个已知的类型,类似type
        def get_name(self):
            if isinstance(self.name,str):
                return self.name
        def get_age(self):
            if isinstance(self.age,int):
                return self.age
        def get_course(self):
            a=max(self.score)
            if isinstance(a,int):
                return a
    
    zm = Student('zhangming',20,[34,56,67])
    print(zm.get_name())
    print(zm.get_age())
    print(zm.get_course())

    09:1、创建员工类Employee,属性有姓名name、能力值ability、年龄age(能力值为100-年龄),功能有doWork(),该方法执行一次,该员工的能力值-5,创建str方法,打印该员工的信息
    2、创建老板类Boss,属性有金钱money,员工列表employeeList(存储员工类对象),工作量work,功能有雇佣员工addEmployee(),雇佣后将员工添加至列表中,雇佣一人money减5000,金额不足时不能雇佣新员工;开始工作startWork(),工作开始后,依次取出员工列表中的员工开始工作,员工能力值减少的同时总的工作量work也减少,当工作量work为0时,工作结束,调用endWork(该方法为Boss类方法,打印员工的能力值信息)方法,如果所有员工使用完后,依然没有完成工作,则提示老板需要雇佣新员工,并打印剩余工作量
    3、创建Boss类对象,默认执行雇佣3个员工,年龄分别为30,40,50,然后死循环开始工作,直至工作完成。

    10:设计一个函数,在指定的文件夹上创建10个文本,以数字给他们取名字

    def work():
        path='D:/wor'
        for name in  range(1,11):
            with open(path+str(name)+'.txt','w')as text:
                text.write(str(name))
                text.close()
                print('DOne')
    work()

    11.摆放家具

    需求:
    1).房子有户型,总面积和家具名称列表
       新房子没有任何的家具
    2).家具有名字和占地面积,其中
       床:占4平米
       衣柜:占2平面
       餐桌:占1.5平米
    3).将以上三件家具添加到房子中
    4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

    class HouseItem:
        #初始化方法
        def __init__(self,name,area):
            self.name=name
            self.area=area
        def __str__(self):
            return '[%s]占地%.2f'%(self.name,self.area)
    
    class House:
        def  __init__(self,house_type,area):
            #需求从外界传递进来的参数
            self.house_type=house_type
            self.area=area
            #剩余面积(新房子没有任何家具,剩余面积=总面积)
            self.free_area=area
            #家具名称列表
            self.item_list=[]
    
        def __str__(self):
            return '户型:%s
    总面积:%.2f[剩余:%.2f]
    家具:%s'%(self.house_type,self.area,
                                                      self.free_area,self.item_list)
    
        def add_item(self,item):
            print('要添加%s'%item)
    
            if item.area>self.free_area:
                print('%s的面积太大了,无法添加'%item.name)
            #如果不满足,下方的代码就不执行了
            return
            #将家具的名称添加到列表中
            self.item_list.append(item.name)
            #计算剩余面积
            self.free_area-=item.area
    
    
    #1.创建家具
    bed = HouseItem('bed',400)
    print(bed)
    chest = HouseItem('chest',2)
    print(chest)
    table = HouseItem('table',1.3)
    print(table)
    
    #创建房子对象
    my_home =House('两室一厅',60)
    #添加家具到房子里面去
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)

     

    我是kelly-凯莉 每天努力一点点,幸运就多一点点
  • 相关阅读:
    面向对象三大特征之多态——Java笔记(七)
    面向对象三大特征之继承(extends)——Java笔记(六)
    this、访问修饰符——Java笔记(五)
    面向对象三大特征之封装与static——(Java学习笔记四)
    初识Java——(Java学习笔记一)
    HTTP/3 简介
    iis 500.19错误解决过程记录
    排序陷阱 List.Sort Linq.OrderBy
    锁的封装 读写锁、lock
    时间“Thu Aug 14 2014 14:28:06 GMT+0800”的转换
  • 原文地址:https://www.cnblogs.com/kelly11/p/11766111.html
Copyright © 2011-2022 走看看