轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
參考教程:B站視頻講解——https://space.bilibili.com/3546616042621301
- 如果代碼存在問題,麻煩大家指正 ~ ~
-
有幫助麻煩點個贊 ~ ~
第1關(guān) 無參無返回值函數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個無參無返回值函數(shù)的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- 無參無返回值函數(shù)
無參無返回值函數(shù)
定義一個無參數(shù)、無返回值的函數(shù) print_hi_human()
,調(diào)用函數(shù)時可以讓計算機向世界發(fā)出問候,在函數(shù)中輸出“人類,你好!”。????????????????????????????????????????????????????????????????
無返回值函數(shù)一般在函數(shù)內(nèi)部會有輸出語句或繪圖語句,函數(shù)的返回值是 None,在調(diào)用函數(shù)時不需要使用賦值語句或是 print()
函數(shù)。
代碼示例:
print("Hello world")
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善一個無參無返回值函數(shù)的程序。
測試說明
平臺會對你編寫的代碼進行測試:
輸入:無
輸出:
人類,你好!
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def print_hi_human(): # 函數(shù)名用小寫字母
"""文檔注釋,雙引號,說明函數(shù)的參數(shù)、功能和返回值等。
定義一個名為print_hi_human的無參數(shù)函數(shù),其功能是打印一句問候語,
這個函數(shù)沒有return語句,即沒有返回值,或者說其返回值為None。
# >>> print_hi_human()
# 人類,你好!
"""
# ==================Begin=====================================
# 此處去掉注釋符號“#”并補充你的代碼
print('人類,你好!')
# ===================End====================================
if __name__ == '__main__':
# 直接使用函數(shù)名來調(diào)用函數(shù)
# ==================Begin=====================================
# 此處去掉注釋符號“#”并補充你的代碼
print_hi_human()
# ===================End====================================
第2關(guān) 無參有返回值函數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個無參有返回值函數(shù)的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- 無參有返回值函數(shù)
無參有返回值函數(shù)
定義一個無參數(shù)、有返回值的函數(shù) say_hi_human()
,調(diào)用函數(shù)時輸出函數(shù)的返回值,讓計算機向世界發(fā)出問候,返回字符串“人類,你好!”。????????????????????????????????????????????????????????????????
有返回值函數(shù)用 return
語句將函數(shù)的處理結(jié)果返回給調(diào)用處,調(diào)用函數(shù)時用 print() 函數(shù)直接輸出函數(shù)的處理結(jié)果,或使用賦值語句為返回值命名以用于后續(xù)處理。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善一個無參有返回值函數(shù)的小程序。
測試說明
平臺會對你編寫的代碼進行測試:
輸出:
輸出:人類,你好!
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def say_hi_human(): # 函數(shù)名用小寫字母
"""定義一個名為print_hi_human的無參數(shù)函數(shù),其功能是返回字符串-人類,你好!"""
#========================Begin===============================
#補充你的代碼
return '人類,你好!'
#==========================End=============================
if __name__ == '__main__':
# 函數(shù)名作為print()函數(shù)的參數(shù),輸出say_hi_human()的返回值
#========================Begin===============================
#補充你的代碼
print(say_hi_human())
#==========================End=============================
第3關(guān) 有參有返回值函數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個有參有返回值函數(shù)的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- 有參有返回值函數(shù)
有參有返回值函數(shù)
定義一個函數(shù) say_hi_person()
,有一個參數(shù) full_name
,接受人名的字符串為參數(shù),函數(shù)的返回值為 “XXX,你好!”
,例如函數(shù)的參數(shù)為“李白”,返回值為“李白,你好!”
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善一個有參有返回值函數(shù)的小程序。
測試說明
平臺會對你編寫的代碼進行測試:
輸入:李白;
輸出:李白,你好!
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def say_hi_person(full_name): # 函數(shù)名用小寫字母,函數(shù)名填空
"""定義一個名為say_hi_person的有參數(shù)函數(shù),接受人名的字符串為參數(shù),函數(shù)的返回值為“***,你好!”,
例如函數(shù)的參數(shù)為“李白”,返回值為“李白,你好!”。"""
#====================Begin===================================
# 補充你的代碼
return full_name + ',你好!'
#=====================End==================================
if __name__ == '__main__':
# 函數(shù)名作為print()函數(shù)的參數(shù),輸出say_hi_human()的返回值。輸入的人名作為函數(shù)的參數(shù)
person_name = input() # 輸入人名
#====================Begin===================================
# 補充你的代碼
print(say_hi_person(person_name))
#=====================End==================================
第4關(guān) 多參函數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個多參函數(shù)進行計算機問候的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- 多參函數(shù)
多參函數(shù)
定義一個函數(shù) say_hi_gender()
,有 2
個參數(shù) full_name
和 gender
,接受人名和性別(“男”或“女”)的字符串為參數(shù),函數(shù)的返回值為“尊敬的XXX先生/女士,歡迎來到火星!”。根據(jù)性別 gender
值確定稱謂,男性稱為“先生”,女性稱為“女士”,不確定性別時稱為“先生/女士”,返回值為替換了姓名與稱謂的歡迎字符串 。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善一個多參函數(shù)進行計算機問候的小程序。
測試說明
平臺會對你編寫的代碼進行測試:
測試輸入:
李白
男
輸出:
尊敬的李白先生,歡迎來到火星!
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def say_hi_gender(full_name, gender): # name 和gender為形式參數(shù)
"""定義一個名為say_hi的有參數(shù)函數(shù),其功能是打印一句問候語
根據(jù)性別gender值確定稱謂,男性稱為“先生”,女性稱為“女士”,不確定性別時稱為“先生/女士”
返回值為替換了姓名與稱謂的歡迎字符串
例如:尊敬的李白先生,歡迎來到火星!"""
# ====================Begin===================================
# 此處去掉注釋符號“#”并補充你的代碼
g = '先生/女士'
if gender == '男':
g = '先生'
if gender == '女':
g = '女士'
return f'尊敬的{full_name}{g},歡迎來到火星!'
# =======================================================
if __name__ == '__main__':
# 直接使用函數(shù)名來調(diào)用函數(shù)
# ====================Begin===================================
# 此處去掉注釋符號“#”并補充你的代碼
print(say_hi_gender(input(), input()))
# =======================================================
第5關(guān) 任意數(shù)量參數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個能任意數(shù)量參數(shù)進行計算機問候的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- 任意數(shù)量參數(shù)
任意數(shù)量參數(shù)
定義一個函數(shù) say_hi_multi_parameter
,使之可接收任意數(shù)量的姓名為參數(shù),調(diào)用函數(shù)時,可以傳遞多個參數(shù)。????????????????????????????????????????????????????????????????
有時候你預(yù)先不知道函數(shù)需要多少實參,此時可以給函數(shù)傳遞一個用 “*”
開頭的序列類型的參數(shù),例如:“*id”
,形參名 id
前面的星號會讓 Python
創(chuàng)建一個空元組,將收集到的所有實參值都封裝到這個元組里。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善一個能任意數(shù)量參數(shù)進行計算機問候的小程序。
測試說明
平臺會對你編寫的代碼進行測試:
輸入格式????????????????????????????????????????????????????????????????:
本題無輸入????????????????????????????????????????????????????????????????
輸出格式????????????????????????????????????????????????????????????????:
分行對每個傳入的參數(shù)輸出“XXX,你好!”
輸出:
孟浩然,你好!
杜甫,你好!
李白,你好!
柳宗元,你好!
李商隱,你好!
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def say_hi_multi_parameter(*names): # 括號里填上參數(shù)
for name in names:
print(name + ',你好!')
#調(diào)用say_hi_multi_parameter并傳入?yún)?shù)
say_hi_multi_parameter('孟浩然')
say_hi_multi_parameter('杜甫', '李白', '柳宗元', '李商隱')
第6關(guān) pow函數(shù)詳解
任務(wù)描述
本關(guān)任務(wù):編寫一個能計算并輸出 x 的 n 次方的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- pow函數(shù)詳解
- 自定義pow函數(shù)
pow函數(shù)詳解pow()
函數(shù)是 Python
的內(nèi)置函數(shù),它計算并返回 x
的 y
次方的值。
pow(x, y, z)
名稱 | 備注 | 說明 |
---|---|---|
x | 底數(shù) | 不可省略的參數(shù) |
y | 指數(shù) | 不可省略的參數(shù) |
z | 取余數(shù)字 | 可省略的參數(shù)。當(dāng)z存在時,函數(shù)返回值等于 pow(x, y)%z |
編程示例:
- 參數(shù)
z
省略時 當(dāng)省略取余數(shù)字z
時,pow
函數(shù)返回x
的y
次方的值。
print(pow(2, 3)) # 輸出8
print(pow(4, 0.5)) # 輸出2.0
- 參數(shù)
z
存在時 當(dāng)參數(shù)z
存在,pow(x, y, z)
的返回結(jié)果就等于pow(x, y)
的結(jié)果對z
求余。
print(pow(8, 2, 5)) # 輸出4
注意事項
-
z
參數(shù)省略時,返回值是x
的y
次方。
print(pow(2, 4)) # 輸出16
-
z
參數(shù)省略時,x
和 y 的值可以是整數(shù)和浮點數(shù) 當(dāng)x
或y
存在浮點數(shù)時,pow()
函數(shù)的返回結(jié)果也是浮點數(shù),否則為整數(shù)。
print(pow(4, 0.5)) # 輸出2.0
print(type(pow(4, -0.5))) # 輸出<class 'float'>
print(pow(4, 2)) # 輸出16
print(type(pow(4, 2))) # 輸出<class 'int'>
- 參數(shù)
z
不能為0
當(dāng)參數(shù)z
為0
時,Python
會拋出異常。
print(pow(4, 2, 0))
'''
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: pow() 3rd argument cannot be 0
'''
- 參數(shù)
z
存在時,x
和y
只能是整數(shù) 當(dāng)z
存在時,x
和y
必須時整數(shù)。否則Python
會拋出異常。
print(pow(3, 0.7, 1))
'''
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pow() 3rd argument not allowed unless all arguments are integers
'''
自定義pow函數(shù)
問題描述: 輸入一個數(shù)值 x
和一個正整數(shù) n
,并調(diào)用自定義的 pow()
函數(shù)計算并輸出 x
的 n
次方。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,完善計算并輸出 x
的 n
次方的小程序。
測試說明
平臺會對你編寫的代碼進行測試:
測試輸入:
2
16
預(yù)期輸出:
65536.0
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def pow(x, y):
return 1.0*x**y
a = eval(input())
b = eval(input())
print(pow(a, b))
第7關(guān) fabs() 函數(shù)
任務(wù)描述
本關(guān)任務(wù):編寫一個使用自定義的fabs()
函數(shù)輸出的小程序。
相關(guān)知識
為了完成本關(guān)任務(wù),你需要掌握:
- fabs()函數(shù)
- 自定義的fabs()函數(shù)
python中的fabs() 函數(shù)fabs()
函數(shù)返回數(shù)字的絕對值,如 math.fabs(-5)
返回 5.0
.
與 abs()
函數(shù)不同的是, fabs()
函數(shù)返回的是浮點型的值。
- 參數(shù)
x 數(shù)值表達(dá)式 - 返回值
返回數(shù)值的絕對值。
代碼示例:
import math
math.fabs(x)
#注意:fabs() 是不能直接訪問的,需要導(dǎo)入 math 模塊,通過靜態(tài)對象調(diào)用該方法。
代碼示例:
import math
print(math.fabs(-45)) # 45.0
自定義的fabs()函數(shù)
問題描述: 輸入一個數(shù)值 x
,并調(diào)用自定義的 fabs()
函數(shù)計算并以浮點數(shù)類型輸出這個數(shù)的絕對值。
編程要求
根據(jù)提示,在右側(cè)編輯器補充代碼,使用調(diào)用自定義的 fabs()
函數(shù)輸出相應(yīng)數(shù)值。
測試說明
平臺會對你編寫的代碼進行測試:
測試輸入:-3
;
預(yù)期輸出:
3.0
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def fabs(x):
"""返回x的絕對值"""
return -x if x<0 else x
if __name__ == '__main__':
n = float(input())
print(fabs(n))
第8關(guān) 汽車迷
任務(wù)描述
小明是一個汽車迷,看到什么汽車馬上就可以說出汽車的生產(chǎn)年份、型號和品牌。定義一個函數(shù),可以輸出汽車的介紹。????????????????????????????????????????????????????????????????
例如輸入:????????????????????????????????????????????????????????????????
2020 AMG_S65 奔馳????????????????????????????????????????????????????????????????
可以輸出:????????????????????????????????????????????????????????????????
這是一輛2020年生產(chǎn),型號是AMG_S65的奔馳牌汽車????????????????????????????????????????????????????????????????。
要求函數(shù)具有以下功能:當(dāng)用戶只輸入生產(chǎn)年份、型號時,品牌按“寶馬”輸出。
輸入格式????????????????????????????????????????????????????????????????
輸入用空格分隔的年、型號和品牌(品牌可能沒有)
輸出格式????????????????????????????????????????????????????????????????
這是一輛年生產(chǎn),型號是的牌汽車。( 根據(jù)用戶輸入進行替換)
示例????????????????????????????????????????????????????????????????
輸入:2020 AMG_S65 奔馳
輸出:
這是一輛2020年生產(chǎn),型號是AMG_S65的奔馳牌汽車。
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def Car(*ls): # 括號里補充你的代碼
#####
brand = '寶馬'
if len(ls)>2:
brand = ls[-1]
return f'這是一輛{ls[0]}年生產(chǎn),型號是{ls[1]}的{brand}牌汽車。'
# 以下內(nèi)容不要修改
ls = input().split() # 根據(jù)空格切分輸入字符串為列表
print(Car(*ls)) # 調(diào)用函數(shù),取列表中的全部數(shù)據(jù)做參數(shù)
第9關(guān) 編寫函數(shù)輸出自除數(shù)
任務(wù)描述
一個不含0的數(shù),如果它能被它的每一位除盡,則它是一個自除數(shù)。例如128是一個自除數(shù),因為128能被1、2、8整除。編寫函數(shù)selfDivisor(num)
判斷num
是否為自除數(shù),使用該函數(shù)輸出不大于N的所有自除數(shù)。????????????????????????????????????????????????????????????????
(注意,含有數(shù)字0的數(shù)不是自除數(shù))
輸入格式????????????????????????????????????????????????????????????????
輸入為一行,一個正整數(shù)N(N>=1)。
輸出格式????????????????????????????????????????????????????????????????
輸出為一行,是不大于N的所有自除數(shù),每個數(shù)后面有一個空格。
示例 1????????????????????????????????????????????????????????????????
輸入:1
輸出:1
示例 2????????????????????????????????????????????????????????????????
輸入:22
輸出:1 2 3 4 5 6 7 8 9 11 12 15 22
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
def selfDivisor(num):
for i in str(num):
if i=='0' or num%int(i):
return False
return True
num = int(input())
for i in range(1, num+1):
if selfDivisor(i):
print(i, end=' ')
第10關(guān) 二分法求平方根B
任務(wù)描述
設(shè)計一個用二分法計算一個大于或等于 0
的實數(shù) n
的平方根的函數(shù)sqrt_binary(n)
,實數(shù) n
和計算精度控制由用戶在同一行內(nèi)輸入,用逗號進行分隔,輸出結(jié)果嚴(yán)格保留8
位小數(shù)。當(dāng)(abs(x * x - n) )
小于或等于設(shè)定的精度時,近似認(rèn)為 x * x == n
。????????????????????????????????????????????????????????????????
注:初始區(qū)間取[0,n+0.25]
輸入格式????????????????????????????????????????????????????????????????
在同一行內(nèi)輸入一個浮點數(shù) n
(大于或等于0)和一個代表精度的浮點數(shù)(可用1e-m
格式輸入),逗號分隔。
輸出格式????????????????????????????????????????????????????????????????
第一行輸出用自己設(shè)計的函數(shù)計算得到的平方根????????????????????????????????????????????????????????????????
第二行輸出用math庫開平方函數(shù)計算得到的平方根文章來源:http://www.zghlxwxcb.cn/news/detail-854108.html
示例????????????????????????????????????????????????????????????????
輸入:5.0,1e-7
輸出:文章來源地址http://www.zghlxwxcb.cn/news/detail-854108.html
2.23606796
2.23606798
參考代碼
# 轉(zhuǎn)載標(biāo)注出處:https://blog.csdn.net/qq_45801887/article/details/134908487
import math
def sqrt_binary(n, e):
low, high = 0, n+0.25
while True:
mid = (low+high)/2
if abs(mid**2 - n) < e:
return mid
else:
if mid**2 > n:
high = mid
else :
low = mid
n, e = map(eval, input().split(','))
print(f'{sqrt_binary(n, e):.8f}')
print(f'{math.sqrt(n):.8f}')
到了這里,關(guān)于【頭歌-Python】Python第四章作業(yè)(初級)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!