第二章? python基礎(chǔ)
1、課本33頁(yè)練習(xí):求圓的半徑和面積;
用戶輸入圓的半徑,輸出圓的直徑和面積。面積公式:s=π*r*r
print("------------求圓的直徑和面積計(jì)算-------------")
r=float(input("請(qǐng)輸入圓的半徑:"))
d=2*r
s=3.14*r*r
print("圓的直徑為:",d)
print("圓的面積為:",s)
2、#課本33頁(yè)練習(xí):計(jì)算運(yùn)輸次數(shù);
#煤場(chǎng)有29.5t,4t運(yùn)了3次,其余用2.5t車運(yùn),還需幾次才能運(yùn)完
print("------------求煤的運(yùn)輸次數(shù)-------------")
sum_coal=round((29.5-3*4)/2.5)
print("還需的次數(shù)為:",sum_coal)
第三章? 流程控制
1、#課本44頁(yè)練習(xí):用while循環(huán)輸出100以內(nèi)偶數(shù)的功能;
print("------------輸出100以內(nèi)偶數(shù)的功能-------------")
i,sign=1,0
while i<100:
if i%2==0:
sign+=1
print(i,end="\t")
if sign%10==0:
print()
i+=1
2、#課本44頁(yè)練習(xí):判斷用戶輸入的是正數(shù)還是負(fù)數(shù);
print("------------判斷用戶輸入的是正數(shù)還是負(fù)數(shù)-------------")
num=float(input("請(qǐng)輸入一個(gè)數(shù)判斷正負(fù):"))
if num>=0:
print("正數(shù)")
else:
print("負(fù)數(shù)")
3、#課本44頁(yè)練習(xí):輸出100以內(nèi)的質(zhì)數(shù);
#質(zhì)數(shù)是指在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的自然數(shù)。
print("------------輸出100以內(nèi)的質(zhì)數(shù)-------------")
sign=0
for i in range(3,100):
for j in range(2,i):
if i%j==0:
break
if j==i-1:
print(i,end="\t")
sign+=1
if sign%10==0:
print()
第四章? 字符串
1、#課本55頁(yè)練習(xí):編程計(jì)算字符串中小寫字母的數(shù)量;
??????#字符串s=‘AbcDeFGhIJ’。
print("------------編程計(jì)算字符串中小寫字母的數(shù)量-------------")
s="AbcDeFGhIJ"
n=0
for i in s:
if 97<=ord(i)<=122:
n+=1
print(f"小寫字母的個(gè)數(shù)為:{n}")
2、#課本55頁(yè)練習(xí):檢測(cè)字符串;
??????#檢測(cè)字符串“Life is short. I use python ”中是否包含“python”,若有則替換為“Python”
print("------------編程計(jì)算字符串中小寫字母的數(shù)量-------------")
s="Life is short. I use python "
flag="python"
s=s.replace(flag,"Python")
print(s)
第五章? 組合數(shù)據(jù)類型
1、#課本71頁(yè)練習(xí):合并列表;
??????#已知num1=[4,5,2,7],num2=[3,6],將兩個(gè)列表合并為一個(gè)列表,并按降序排列
ls=[]
num1=[4,5,2,7]
num2=[3,6]
ls=num1+num2
ls.sort(reverse=True)
print(ls)
2、#課本71頁(yè)練習(xí):向元組中添加新元素;
? ? ?#已知元組num1=('p','y','t',['o','n']),在元組最后添加元素‘h’
num1=('p','y','t',['o','n'])
num1=list(num1)
num1.append('h')
num1=tuple(num1)
print(num1)
3、#課本71頁(yè)練習(xí):統(tǒng)計(jì)字符串個(gè)字母出現(xiàn)的次數(shù);
#已知字符串s="skdaskerkjsalkj"
s="skdaskerkjsalkj"
d={}
for i in s:
d[i]=d.get(i,0)+1
print(d)
4、#課本71頁(yè)練習(xí):刪除列表中重復(fù)的數(shù)據(jù);
#已知ls=[1,2,1,2,3,5,4,3,5,7,4,7,4]
ls=[1,2,1,2,3,5,4,3,5,7,4,7,4]
ls=list(set(ls))
print(ls)
第六章? 函數(shù)
1、#課本87頁(yè)練習(xí):編寫函數(shù),計(jì)算出1-100中的偶數(shù)和;
sum=0
def oushu(n):
if n%2==0:
s(n)
def s(n):
global sum
sum+=n
for i in range(101):
oushu(i)
print(f"1-100以內(nèi)的偶數(shù)之和為:{sum}")
2、#課本87頁(yè)練習(xí):編寫函數(shù)計(jì)算20*19*18……*3的結(jié)果;
def jisuan(n):
if n ==3:
return 3
else:
return n*jisuan(n-1)
num=eval(input("請(qǐng)輸入一個(gè)數(shù)字:"))
all=jisuan(num)
print(f"乘積{all}")
3、#課本87頁(yè)練習(xí):判斷用戶輸入是否為回文數(shù);
def fun(n):
huiwen=n[::-1]
if n==huiwen:
print("是回文數(shù)!")
else:
print("不是回文數(shù)!")
str=input("請(qǐng)輸入一個(gè)字符串")
fun(str)
4、#課本87頁(yè)練習(xí):編寫函數(shù),判斷用戶輸入的3個(gè)數(shù)字是否能構(gòu)成三角形的三條邊;
# 構(gòu)成三角形:任意兩邊之和大于第三邊
def fun(a,b,c):
if a+b>c and a+c>b and b+c>a:
print(f"{a},,{c}可以構(gòu)成三角形")
else:
print(f"{a},,{c}不可以構(gòu)成一個(gè)三角形")
ls=[]
ls=input("請(qǐng)輸入三條邊長(zhǎng)(中間用逗號(hào)隔開(kāi))").strip('\'').split(',')
# print(ls)
fun(eval(ls[0]),eval(ls[1]),eval(ls[2]))
5、#課本87頁(yè)練習(xí):編寫函數(shù),求2個(gè)數(shù)的最小公倍數(shù);
# 最小公倍數(shù)
def fun(n,m):
num=n if n>m else m
for i in range(n,n*m+1):
if i%n==0 and i%m==0:
return i
print("求兩個(gè)數(shù)的最小公約數(shù)。")
num1=int(input("請(qǐng)輸入第一個(gè)數(shù):"))
num2=int(input("請(qǐng)輸入第二個(gè)數(shù):"))
num=fun(num1,num2)
print(f"{num1}和{num2}的最小公倍數(shù)為:{num}")
第七章? 文件與數(shù)據(jù)格式化
1、#課本101頁(yè)練習(xí):讀取文件,打印除了字符#以外的所有行
fi=open('text.txt',encoding='utf-8')
lines=fi.readlines()
for line in lines:
if line[0]=='#':
continue
else:
print(line,end='')
2、#課本101頁(yè)練習(xí):編寫程序,實(shí)現(xiàn)文件備份功能
import os
#
# 備份文件夾
def wjj(name):
# 判斷文件夾路徑是否存在
if os.path.exists(name):
for path,dirs,files in os.walk(name):
for file in files:
path1 = path+'\\'+file
with open(path1,'r',encoding='utf-8') as f:
s=f.read()
mz=path+'\\beifeng''bf'+file
with open(mz,'w') as fi:
fi.write(s)
print("備份成功")
else:
print("文件路徑錯(cuò)誤,備份失敗??!")
# 備份文件
def wj(name):
# 判斷文件是否存在
if os.path.exists(name):
# 獲取當(dāng)前路徑下文件的名字
file=os.path.basename(name)
s=os.path.dirname(name)+'bf'+file
# 備份文件夾
with open (name,'r',encoding='utf-8') as f:
read=f.read()
with open (s,'w',encoding='utf-8')as fi:
fi.write(read)
print("文件備份成功!")
else:
print("備份失敗,文件不存在!")
path1 = input("請(qǐng)輸入需要備份路徑:")
if os.path.isdir(path1):
wjj(path1)
elif os.path.isfile(path1):
wj(path1)
else:
print("輸入錯(cuò)誤!")
3、#課本101頁(yè)練習(xí):編寫程序,讀取一個(gè)存儲(chǔ)若干數(shù)字的文件,對(duì)其中的數(shù)字排序后輸出
fi=open('data101.txt',encoding='utf-8')
numbers=fi.read()
ls=[]
ls=numbers.strip().split()
nums=[]
for num in ls:
nums.append(eval(num))
nums.sort(reverse=False)
print(nums)
fi.close()
第八章? 面向?qū)ο?/h4>
1、#課本練習(xí)121: # 課本練習(xí)121設(shè)計(jì)一個(gè)圓類,其中包括半徑radius屬性,還包括__init__,get_perimeter()(求周長(zhǎng))和求get_atea()方法 # 創(chuàng)建對(duì)象求圓的周長(zhǎng)和面積
class Circle():
def __init__(self,radius):
self.radius=radius
# 求周長(zhǎng)
def get_perimeter(self):
return self.radius*2*3.14
# 求面積
def get_atea(self):
return self.radius*self.radius*3.14
circle=Circle(5)
c=circle.get_perimeter()
s=circle.get_atea()
print(f"面積為{s},周長(zhǎng)為{c}")
2、#課本練習(xí)121: # 課本練習(xí)121設(shè)計(jì)一個(gè)課程Course類,該類中包含number(編號(hào))、name(名稱)、teahcer(老師)、location(上課地點(diǎn)),其中l(wèi)ocation為私有屬性 # 包括__init__(),show_info()(顯示課程信息)共兩個(gè)方法。完成設(shè)計(jì)后,創(chuàng)建Course類的對(duì)象顯示課程的信息
class Course():
def __init__(self,number,name,teacher,location):
self.number=number
self.name=name
self.teacher=teacher
self.__location=location
def show_info(self):
print(f"課程編號(hào)為{self.number},課程名為{self.name},任課老師為{self.teacher},上課地點(diǎn)為{self.__location}")
info=Course(101,"python程序設(shè)計(jì)","張老師","三機(jī)房")
info.show_info()
第九章? 異常
1、#課本練習(xí)132頁(yè):計(jì)算圓的面積 # 編寫程序,按用戶輸入的半徑計(jì)算圓的面積,若半徑為負(fù)則拋出異常 # 圓的公式為:S=πR2文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-444794.html
class NumError(Exception):
def __init__(self,number):
self.number=number
try:
r=eval(input("請(qǐng)輸入圓的半徑:"))
if r<0:
raise NumError(r)
except NumError as rrsult:
print("您輸入的半徑為{},圓的半徑不能為負(fù)!".format(rrsult.number))
else:
S=3.14*r*r
print(f"圓的面積為:{S}")
2、#課本練習(xí)132頁(yè):計(jì)算三角形的面積和周長(zhǎng) # 編寫程序按用戶輸入的三條邊判斷能否構(gòu)成直角三角形, # 若能構(gòu)成直角三角形,則計(jì)算其周長(zhǎng)和面積,否則引發(fā)異常文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444794.html
class NumError(Exception):
def __init__(self,number1,number2,number3):
self.number1=number1
self.number2=number2
self.number3=number3
try:
line=input("請(qǐng)輸入三角形的第三條邊長(zhǎng)(中間用英文逗號(hào)隔開(kāi)):")
lis=line.strip().split(',')
a,b,c=eval(lis[0]),eval(lis[1]),eval(lis[2])
if (a*a+b*b !=c*c) and (a*a+c*c!=b*b) and (b*b+c*c!=a*a):
raise NumError(a,b,c)
except NumError as result:
print("您輸入的{},{},{}不能構(gòu)成直角三角形!".format(result.number1,result.number2,result.number3))
else:
C=a+b+c
if a*a+b*b==c*c:
S=a*b/2
elif a*a+c*c==b*b:
S = a * c / 2
else:
S = c * b / 2
print("此直角三角形的面積為{},周長(zhǎng)為{}".format(S,C))
到了這里,關(guān)于【python快速編程入門(第二版)黑馬程序員課后編程題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!