1.使用格式化輸出的三種方式實作以下輸出(name換成自己的名字,既得修改身高體重,不要厚顏無恥)
name = 'ABDMLBM'
height = 175
weight = 140
# "My name is 'Nick', my height is 180, my weight is 140"
print('My name is %s,my height is %s,my weight is %s'%(name,height,weight))
print('My name is {},my height is {},my weight is {}'.format(name,height,weight))
print(f'My name is {name},my height is {height},my weight is {weight}')
2.輸入姑娘的年齡后,進行以下判斷:
-
如果姑娘小于18歲,列印“不接受未成年”
-
如果姑娘大于18歲小于25歲,列印“心動表白”
-
如果姑娘大于25歲小于45歲,列印“阿姨好”
-
如果姑娘大于45歲,列印“奶奶好”
while True:
girl_age =int( input('輸入美女年齡'))
if girl_age < 18:
print('不接受未成年')
elif girl_age >= 18 and girl_age < 25:
print('心動表白')
elif girl_age >= 25 and girl_age < 45:
print('阿姨好')
else :
print('奶奶好')
3.預習while回圈,列印1-100之間的偶數:
i = 1
while i < 101:
oi = i % 2
if oi == 0:
print(i)
i += 1
4.通過預習寫一個猜年齡游戲,需求:給定一個標準年齡,用戶通過輸入年齡判斷年齡是否等于標準年齡,如果等于——列印猜對了;如果小于——列印猜小了;如果大于——列印猜大了,增加用戶輸入年齡功能,并可以參考while回圈博客,為應用程式添加回圈,
預習while回圈,猜年齡游戲升級版,有以下三點要求:
-
允許用戶最多嘗試3次
-
每嘗試3次后,如果還沒猜對,就問用戶是否還想繼續玩,如果回答Y或y, 就繼續讓其猜3次,以此往復,如果回答N或n,就退出程式
-
如果猜對了,就直接退出
age = 25
count = 0
while count < 4:
user_age = int(input('請輸入你的年齡:'))
if user_age == age:
print('你猜對了')
break
elif user_age > age:
print('你猜大了')
else:
print('你猜小了')
count += 1
if count != 3 :
continue
else:
print('你已經猜了三次,答"Y"或者"y"還想再玩,答"N"或者"n"退出')
user_player = input('請輸入:')
if user_player == "Y" or user_player == "y":
count = 0
else:
break
5.統計s = 'hello alex alex say hello sb sb'中每個單詞的個數
s = 'hello alex alex say hello sb sb'
l=s.split()
print(l)
dic = {}
for item in l:
if item in dic:
dic[item]=dic[item]+1
else:
dic[item]=1
print(dic)
6.統計一篇英文文章內每個單詞出現頻率,并回傳出現頻率最高的前10個單詞及其出現次數
from collections import Counter
import re
with open('a.txt', 'r', encoding='utf-8') as f:
txt = f.read()
c = Counter(re.split('\W+',txt)) #取出每個單詞出現的個數
print(c)
ret = c.most_common(10) #取出頻率最高的前10個
print(ret)
7.冒泡排序
def mao_pao(li):
for i in range(len(li)):
for j in range(len(li)):
if li[i] < li[j]:
li[i],li[j] = li[j] ,li[i]
import random
li = list(range(10))
random.shuffle(li)
print(li)
mao_pao(li)
print(li)
8.洗掉串列中的重復元素
#方式一
li = [1,5,5,4,12,3,1,5]
print(list(set(l)))
#方式二
li = [1,5,5,4,12,3,1,5]
def func(li):
l = []
for i in li:
if i not in l:
l.append(i)
return l
print(func(li))
9.二分查找
#方式一:遞回版
li = [1,2,3,4,5,6,7,8,9,10]
def erfen(li,aim ,start=0 ,end=len(li)-1):
if start <= end:
mid = (start+end)//2
if li[mid] >aim : #如果中間的值比目標值大,就從左邊找
return erfen(li,aim,start,mid-1)
elif li[mid]<aim : #從右邊找
return erfen(li,aim,mid+1,end)
else:
return mid
ret = erfen(li,10)
print(ret)
#方式二:回圈版
li = [1,2,3,4,5,6,7,8,9,10]
def erfen(li,aim,start=0,end=len(li)-1):
while start <= end:
mid = (start+end) //2
if li[mid] < aim:
start = li[mid] +1
elif li[mid] >aim:
end = li[mid] -1
else:
return mid
print(erfen(li,10))
10、寫出下面代碼的輸出結果
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print(l)
f(2) #[0,1]
f(3,[3,2,1]) #[3,2,1,0 1 4]
f(3) #[0,1,0,1,4]
11. 實作字串反轉 輸入str="string"輸出'gnirts'
# 方式一
def str_reverse(str):
return str[::-1] #從前到后步長為-1
print(str_reverse('string'))
# 方式二
def str_reverse2(str):
l = list(str)
l.reverse()
new_str = ''.join(l)
return new_str
print(str_reverse2('string'))
12.一行代碼實作對串列a中的偶數位置的元素進行加3后求和
# 0 1 2 3 4
# 0 5 7
sums=sum(map(lambda x:x+3,list(range(5))[::2]))
print(sums)
13.List=[-2,1,3,-6] ,如何實作以絕對值大小從小到大將list中內容排序
List=[-2,1,3,-6]
List.sort(key=abs) #按照絕對值從小到大排序
print(List)
14. 如果當前日期為20170130,要求寫一個函式輸出N天后的日期
import datetime
data = 'https://www.cnblogs.com/python1111/p/20170130'
def func(n,data):
date=datetime.datetime.strptime(data,'%Y%m%d')
da=datetime.timedelta(n)
return date+da
print(func(2,data))
15.實作一段代碼,功能是將這段代碼列印出來
import os
def print_code():
with open(os.path.join(os.getcwd(),__file__),'r',encoding='utf-8') as f:
return f.read()
print(print_code())
16.合并兩個串列,并去重,組成一個新的串列
# 方式一
list1 = [1,2,3,5,8,4,2,6]
list2 = [11,44,21,2,54,77]
print(list(set(list1+list2)))
#方式二
list1.extend(list2)
print(list(set(list1)))
#方式三
def list_union(list1,list2):
for i in list2:
list1.append(i)
return list1
print(list(set(list_union(list1,list2))))
17.什么是lambda運算式?他有什么好處?另外Python在函式編程方面提供了些什么函式和語法?
答:
lambda 運算式也就是匿名函式,一些簡單的功能需要實作的時候可以用匿名函式,一行陳述句體搞定,
它語法簡單,簡化代碼,不會產生命名沖突,污染命名空間,
Python提供了map,filter,reduce等函式方法,提供了裝飾器,閉包等語法
18.詳細說說tuple,list,dict的用法以及他們的特點
tuple:元組,不可變資料型別,訪問效率高,適合存盤一些常量資料,可以作為字典的鍵使用
list:串列,是可變資料型別,可以通過下標索引取值
dict:字典,是可變資料型別,存盤方式為鍵值對的形式,可以通過相對應的鍵獲取相對應的值,key支持多種資料型別
19. list 物件 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}],按 alist 中元素的age 由大到小排序
alist = [{'name': 'a', 'age': 20}, {'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}]
alist.sort(key=lambda x:x['age'],reverse=True)
print(alist)
20.將字串:"k:1|k1:2|k2:3|k3:4",處理成 python 字典:
s = "k:1|k1:2|k2:3|k3:4"
str_list = s.split('|')
print(str_list)
d = {}
for i in str_list:
key ,value = https://www.cnblogs.com/python1111/p/i.split(':')
d[key] = value
print(d)
21.斐波那契數列
def fib(n):
if n<=2:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(10))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548509.html
標籤:Python
上一篇:【manim影片教程】-- 安裝
