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\n總面積:%.2f[剩余:%.2f]\n家具:%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)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM