1.定義一個函數,傳遞文件路徑,獲取文件的後綴名
def get_houzhui(s):
print("後綴名是:",s[s.rfind(".")+1:])
s = input("請輸入需要獲取文件後綴的路徑:")
get_houzhui(s)
2:輸入一個數字(年份,如2000年),定義函數,判斷該年份是否是閏年
def get_isrun(num):
if(num%4==0 and num%100!=0)or num%400 == 0:
return True
else:
return False
s = int(input("請輸入需要需要判斷的年份:"))
if get_isrun(s):
print("{}是閏年".format(s))
else:
print("{}不是閏年".format(s))
3:將之前的打印*組成三角形的代碼,改造成函數,要求如下(定義好多函數的):
1、打印的層數有調用者決定
2、如果是菱形的話,判斷用戶必須輸入才層數爲奇數纔行
def print_sanjiao(n):
for i in range(1,n+1):
for j in range(1,n-i+1):
print(" ",end="")
for k in range(1,2*i):
print("*",end="")
print()##換行
def print_linxing(n):
for i in range(1,n//2 + 2):
for j in range(1,n//2 + 2-i):
print(" ",end = "")
for k in range(1,2*i):
print("*",end = "")
print("")
for m in range(1,n//2+1):
for a in range(1,m+1):
print(" ",end = "")
for b in range(1,2*(n//2+1-m)):
print("*",end="")
print("")
choice = int(input("請輸入需要打印的選擇:1:三角形,2:菱形"))
if choice == 1:
n = int(input("請輸入需要打印的行數:"))
print_sanjiao(n)
elif choice == 2:
n = int(input("請輸入需要打印的行數:"))
if n%2 == 0:
print("行數應爲奇數")
else:
print_linxing(n)
else:
print("錯誤選擇!")
4:定義一個函數,判斷該數是不是質數
def is_zhishu(n):
flag = True
for i in range(2,n//2):
if n%i ==0:
flag = False
break
return flag
n = int(input("請輸入需要判斷的數字:"))
if is_zhishu(n):
print("{}是質數".format(n))
else:
print("{}不是質數".format(n))
5:做一個計算器函數,輸入三個參數(兩個數字,一個符號)。
如輸入:5 6 + ,則輸出: 5+6=11
def jisuanqi(a,b,op):
if op == "+":
return a+b
elif op == "-":
return a-b
elif op == "*":
return a*b
elif op == "/":
return a/b
num1 = float(input("請輸入需要計算的第一個數字:"))
num2 = float(input("請輸入需要計算的第二個數字:"))
op = input("請輸入需要計算的符號:")
print(jisuanqi(num1,num2,op))
6:定義函數,打印九九乘法表
def print_table(n):
for i in range(1,n+1):
for j in range(1,i+1):
print("{}X{}={}".format(i,j,i*j),end=" ")
print(" ")
n = int(input("打印的乘法表行數:"))
print_table(n)
7:使用函數完成一個0~n之間的奇數的積。
def print_ji(n):
sum = 1
for i in range(1,n+1):
if i%2 !=0:
sum *= i
return sum
n = int(input("需要打印的乘積:"))
print(print_ji(n))
8:使用遞歸完成1~100之間的積
def print_chengji(n):
if n == 1:
return 1
return n * print_chengji(n-1)
n = int(input("輸入需要計算階乘的值:"))
print("{}的階乘是{}".format(n,print_chengji(n)))
9:找出10000以內能被5或6整除,但不能被兩者同時整除的數(函數)
def print_fuhe(n):
for i in range(1,n+1):
if (i%5 ==0 or i%6==0) and not (i%5 ==0 and i%6==0):
print(i)
n = int(input("輸入需要處理的範圍從0開始:"))
print_fuhe(n)
10:使用函數求三角形的面積和周長(已知三邊的情況下,提示:海倫公式)
import math
math.sqrt(數據) # 表示開平方根
math.sqrt(4) #
import math
def sanjiao_zhouchang(a,b,c):
return (a+b+c)*2
def sanjiao_mianji(a,b,c):
p = (sanjiao_zhouchang(a,b,c))/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
return s
a = float(input("輸入三角形三邊邊長之a:"))
b = float(input("輸入三角形三邊邊長之b:"))
c = float(input("輸入三角形三邊邊長之c:"))
print("三角形的周長:{},面積是:{}".format(sanjiao_zhouchang(a,b,c),sanjiao_mianji(a,b,c)))
1、寫一個方法,在方法內依次打印出列表每個元素
的值。
def print_list(ls):
for i in ls:
print(ls[i-1])
ls = [1,2,3,4,5]
print_list(ls)
2、寫一個方法,計算列表所有元素的和(注意返回值
)。
def print_sum(ls):
sum = 0
for i in ls:
sum += ls[i-1]
return sum
ls = [1,2,3,4,5]
print("列表是:{},元素和是:{}".format(ls,print_sum(ls)))
3、寫一個方法,計算列表所有奇數下標元素的和(注
意返回值)。
def print_sum(ls):
sum = 0
i = 1
while i < len(ls):
sum += ls[i]
i += 2
return sum
ls = [1,2,3,4,5]
print("列表是:{},奇數下標元素和是:{}".format(ls,print_sum(ls)))
4、寫一個方法,計算列表所有偶數下標元素的和(注
意返回值)。
def print_sum(ls):
sum = 0
i = 0
while i < len(ls):
sum += ls[i]
i += 2
return sum
ls = [1,2,3,4,5]
print("列表是:{},偶數下標元素和是:{}".format(ls,print_sum(ls)))
5、寫一個方法可以計算兩個數的和,想想這個方法
有哪些參數,返回值。
def add(a,b):
return a+b
a = float(input("輸入計算兩個數的和第一位:"))
b = float(input("輸入計算兩個數的和第二位:"))
print("{}+{}={}".format(a,b,add(a,b)))
6、寫一個方法可以計算兩個數的商(分母不能爲0),
想想這個方法有哪些參數,返回值是什麼。
def chu(a,b):
return a/b
a = float(input("輸入計算兩個數中的被除數"))
b = float(input("輸入計算兩個數中的除數"))
if b != 0:
print("{}/{}={}".format(a,b,chu(a,b)))
else:
print("除數不能爲0")
7、寫一個方法將傳入的天、小時、分鐘、秒的總和
轉換爲秒,比如0天、2小時、5分、7秒,他們代表的
總秒數爲23600+560+7=7507秒。想想這個方法
有哪些參數,返回值是什麼類型。
def print_miao(day,hour,min,seconds):
return day*86400+hour*3600+min*60+seconds
day = float(input("請依次輸入天,"))
hour = float(input("請依次輸入小時,"))
min = float(input("請依次輸入分鐘,"))
seconds = float(input("請依次輸入秒:"))
print("轉換爲秒後:{}".format(print_miao(day,hour,min,seconds)))
8、寫一個方法交換整型列表中兩個指定下標元素的
值。想想這個方法有哪些參數,返回值是什麼類型。
def swap(ls,a,b):
ls[a] = ls[a]+ls[b]
ls[b] = ls[a]-ls[b]
ls[a] = ls[a]-ls[b]
return ls
ls = [1,2,3,4,5]
a = int(input("需要交換的下標a:"))
b = int(input("需要交換的下標b:"))
print("交換前:{}".format(ls))
print("交換後:{}".format(swap(ls,a,b)))
9、寫一個方法計算整型列表中所有能被3整除元素的
個數。想想這個方法有哪些參數,返回值是什麼類
型。
def chu3(ls):
count = 0
for i in range(0,len(ls)):
if ls[i]%3 == 0:
count += 1
return count
ls = [1,2,3,4,5,6,7,8,9,12]
print("列表:{},能被三整除的元素個數:{}".format(ls,chu3(ls)))
10、寫一個方法將整型數字(int)轉換爲格式化的字符
串(string),現要求如下:
a.可以指定轉換後[字符串的長度];
b.當數字的長度不足指定的長度,讓這個字符串右對
齊,指定[左邊補的字符(char)];
例如,假設現在將指定的數字轉換爲固定長度爲8的
字符串,如果長度不足,左邊補’0’,那麼27這個數字
就會轉換爲字符串"00000027"。
根據要求,想想這個方法有哪些參數,返回值是什麼
類型。
def exchang(num,lens):
s = str(num)
return s.rjust(lens,"0")
num = int(input("輸入需要轉換的數字:"))
lens = int(input("輸入需要轉換後的長度:"))
print("轉換後:{}".format(exchang(num,lens)))
11.用方法實現找出一個int類型列表中最大值和最小
值
def exchang(ls):
max = ls[0]
min = ls[0]
for i in range(0,len(ls)):
if ls[i] > max:
max = ls[i]
elif ls[i] < min:
min = ls[i]
return max,min
ls = [1,2,3,4,5,4,3,2,1]
print("最大值和最小值是:{}".format(exchang(ls)))
12.判斷一個數是否是質數(素數)?該如何聲明方
法?
def iszhishu(num):
flag = True
for i in range(2,num//2):
if num%i == 0:
flag = False
break
return flag
num = int(input("請輸入需要判斷的數字:"))
if iszhishu(num):
print("{}是質數".format(num))
else:
print("{}不是質數".format(num))
13.將指定的秒數轉變爲幾小時幾分幾秒。
def ex(num):
a = num//3600
b = (num - a*3600)//60
c = (num - a*3600)%60
return a,b,c
num = int(input("請輸入需要轉換的秒:"))
print("{}秒轉換爲{}時{}分{}秒".format(num,ex(num)[0],ex(num)[1],ex(num)[2]))
14.使用Random類給一個數組的所有元素賦隨機初值
(不重複)。
import random
def fuzhi(num):
len = 0 ##記錄列表中元素的個數
ls = []##空列表
while len <= num :
a = random.randint(0,num)
if ls.count(a) == 0 : ##判斷生成的這個隨機數是否在列表中,不在則添加,在則跳過,通過count值來判斷
ls.append(a)
len += 1
else :
continue
print(ls)
num = int(input("請輸入需要創建的列表長度:"))
fuzhi(num)
15.判斷一個整型數組是否是對稱的。所謂對稱就是
第一個元素等於最後一個元素,第二個元素等於倒數
第二個元素,依次類推,例如【7,3,1,3,7】就
是對稱的。
def duichen(ls):
i = 0
j = len(ls)-1
flag = True
for k in range(0,len(ls)//2):
if ls[i] != ls[j]:
flag = False
break
i += 1
j -= 1
return flag
ls = [1,2,3,4,5,6,5,4,3,2,1,]
if duichen(ls):
print("{}是對稱的".format(ls))
else:
print("{}是不對稱的".format(ls))
16.打印一個元組的所有值。
def print_yuansu(t):
ls = list(t)
for i in range(0,len(ls)):
print(ls[i],end=" ")
t = (1,2,3,4,5,4,3,2,1)
print("元組是{},打印元素:".format(t),end = " ")
print_yuansu(t)
17.查找一個元組中某個值是否存在,如果存在返回
這個值的索引,否則返回-1。
def chazhao(t,num):
ls = list(t)
if ls.count(num) >= 1:
return ls.index(num)
else:
return -1
t = (1,2,3,4,5,4,3,2,1)
print(t)
num =int(input("輸入需要判斷的元素:"))
print("元組是{},查詢元素是:{},下標是{}".format(t,num,chazhao(t,num)),end = " ")
18.將一個列表反轉過來,比如【2,3,1,4,7】轉
換爲【7,4,1,3,2】
def reverse(ls):
ls.reverse()
return ls
ls = [1,2,3,4,5]
print("列表是{},翻轉後是{}".format(ls,reverse(ls)),end = " ")
19.求一個列表的最大值。
20.求一個列表的最小值。
def max(ls):
max = ls[0]
for i in range(0,len(ls)):
if ls[i] > max:
max = ls[i]
return max
def min(ls):
min = ls[0]
for i in range(0,len(ls)):
if ls[i] < min:
min = ls[i]
return min
ls = [1,2,3,4,5,6,32,1,2,3,2,1,32]
print("列表是:{},最大值是:{},最小值是:{}".format(ls,max(ls),min(ls)))
21.寫一個方法,實現在列表中指定的的位置前插入
一個值。
def insert(ls,num,num1):
ls.insert(num,num1)
return ls
ls = [1,2,3,4,5,6]
print("插入前:{}".format(ls))
num = int(input("輸入插入的位置:"))
num1 = int(input("插入的元素"))
print("插入後:{}".format(insert(ls,num,num1)))
22.寫一個方法,刪除列表中指定位置的元素。
def remove(ls,num,):
ls.remove(num)
return ls
ls = [1,2,3,4,5,6]
print("刪除前:{}".format(ls))
num = int(input("輸入刪除的位置:"))
print("刪除後:{}".format(remove(ls,num)))
23.猜數遊戲
1.隨機出現一個數(範圍自定義) 作爲答案
2.提示用戶輸入並根據答案和用戶輸入的大小關係輸
出大了? 小了?
3.5次機會
4.可以重複玩
5.根據猜對的次數進行評價
6.無論對錯 請告知答案
import random
def caisuzi():
com = random.randint(0,101)
count = 0
while count < 5:
your = int(input("請輸入一個0-100的數字:"))
if your > com :
print("輸入值大了")
count += 1
elif your < com :
print("輸入值小了")
count += 1
else:
print("猜對了!")
count += 1
break
print("隨機數字是{}".format(com))
pinjia(count)
def pinjia(count):
if count == 1:
print("牛逼了,兄弟!")
elif count == 2 or count == 3:
print("厲害啊,兄弟!")
elif count == 4:
print("不錯,不錯!")
else:
print("輸入次數達到上限,你有點菜呀,兄弟!")
while True:
choice = int(input("請輸入你的選擇:1,繼續玩遊戲,其他,退出---"))
if choice == 1:
caisuzi()
else:
break
以上代碼均提供運行示例,代碼水平拙劣,不喜勿噴,實在是題目太多,也不想優化了,權當是拋磚引玉,希望各位水平更進!雖然我連磚都算不上。