深深感知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,101) if 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:手動輸入一個字符串,打散放進一個列表,小寫字母反序,大寫字母保持不變
思路:
- 將手動傳入的字符串用list函數將其打散成為一個列表1
- 循環列表1,判斷每個元素字母的大小寫
- 小寫:將其追加到一個新列表2中
- 大寫:記錄下其索引及元素值到一個字典中
- 循環完成后,將新列表中所有的小寫元素反轉
- 循環遍歷字典,將鍵值對應的添加到列表2中
- 循環完成后,輸出列表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)