Python版本 3.6
这一章的题是真的多。。
# -*- coding: utf-8 -*-
n=int(input('键入需要的杨慧三角行数:'))
s1=[1]
for i in range(1,n+1):
print(str(s1).center(100))
s1.append(0)
s2=s1.copy()
s2.reverse()
for j in range(0,i):
s2[j]+=s1[j]
s1=s2
# -*- coding: utf-8 -*-
import math
a=b=-1
while(a<=0 or b<=0):
a=float(input('输入直角三角形的直角边A(>0):'))
b=float(input('输入直角三角形的直角边B(>0):'))
c=math.sqrt(a*a+b*b)
l=a+b+c#周长
s=a*b/2
si1=a/c
si2=b/c
d1=round(math.asin(si1)*180/math.pi,0)
d2=round(math.asin(si2)*180/math.pi,0)
print(str.format('直角三角形的三边分别为:A={:0.1f},B={:0.1f},C={:0.1f}',a,b,c))
print(str.format('三角形的周长={:0.1f},面积={:0.1f}',l,s))
print(str.format('三角形锐角的两个度数分别为{:0.1f}和{:0.1f}',d1,d2))
第二题还是简单
# -*- coding: utf-8 -*-
import random
a=random.randint(0,100)
b=random.randint(0,100)
c=random.randint(0,100)
print(str.format('原始值:a={},b={},c={}',a,b,c))
print(str.format('(方法一)升序值:a={},b={},c={}',min(a,b,c),a+b+c-min(a,b,c)-max(a,b,c),max(a,b,c)))
if a>b:a,b=b,a
if a>c:a,c=c,a
if b>c:b,c=c,b
print(str.format('(方法二)升序值:a={},b={},c={}',a,b,c))
我在后面的题里用到了这个排序
# -*- coding: utf-8 -*-
s=-1
while s<=0:
s=float(input('请输入有固定工资收入的党员的月工资:'))
if s<=400:d=s*0.005
elif s<=600:d=s*0.01
elif s<=800:d=s*0.015
elif s<=1500:d=s*0.02
elif s>1500:d=s*0.03
print(str.format('月工资={},交纳党费={}',s,d))
好奇这是哪一年的标准,这么便宜
# -*- coding: utf-8 -*-
x=float(input('请输入操作数x:'))
y=float(input('请输入操作数y:'))
z=input('请输入操作符:')
if z=='/' and y==0:
print('分母=0,零除异常')
elif z=='%' and y==0:
print('分母=0,零除异常')
else:
if z=='+':r=x+y
if z=='-':r=x-y
if z=='*':r=x*y
if z=='/':r=x/y
if z=='%':r=x%y
print(str.format('{}{}{}={}',x,z,y,r))
我觉得Python做输入判断没有必要,所以我就没做
# -*- coding: utf-8 -*-
a=float(input('请输入三角形的边a:'))
b=float(input('请输入三角形的边b:'))
c=float(input('请输入三角形的边c:'))
a,b,c=min(a,b,c),a+b+c-min(a,b,c)-max(a,b,c),max(a,b,c)
if a<=0 or b<=0 or c<=0 or a+b<=c or a+c<=b or b+c<=a:print('无法构成三角形!')
elif a==b==c:print('该三角形为等边三角形!')
elif ((a==b!=c)or(a==c!=b)or(c==b!=a))and(a*a+b*b==c*c):
print('该三角形为等腰直角三角形!')
elif (a==b!=c)or(a==c!=b)or(c==b!=a):print('该三角形为等腰三角形!')
elif a*a+b*b==c*c:print('该三角形为直角三角形!')
else:print('该三角形为普通三角形!')
不做输入判断的话,就得靠用户不乱来了,这题我加了个等腰直角,虽然。。。肯定没人能输入,试试?
# -*- coding: utf-8 -*-
h=-1
f=1
while h<0:
h=int(input('请输入总头数:'))
while f%2==1:
f=int(input('请输入总脚数(必须是偶数):'))
r=f/2-h
if r>h or r<0:
print('方法一无解!')
else:
print(str.format('方法一:鸡:{}只,兔:{}只',int(h-r),int(r)))
for r in range(0,h+1):
if r*2+(h-r)*4==f:
print(str.format('方法二:鸡:{}只,兔:{}只',r,h-r))
break
if r==h:print('方法二无解!')
# -*- coding: utf-8 -*-
def fac(a,b=1):#定义阶乘函数
return b if a==1 or a==0 else fac(a-1,a*b)
r=0
i=0
x=float(input('请输入X:'))
while abs((x**i)/fac(i))>=10**-7:
r+=(x**i)/fac(i)
i+=1
print('Pow(e,x)=',r)
学会了函数的默认参数,精度要写到10的-7
# -*- coding: utf-8 -*-
a=-1
while(a<0):
a=float(input('输入非负实数a:'))
r=a/2+0.5
if a==0:print('0的算术平方根=0')
else:
while r-(r+a/r)/2>=10**-6:
r=(r+a/r)/2
print(a,'的算术平方根=',r)
把精度再调高一点,基本就是结果了
下面那个结果我把精度调整为了10的-20次方
# -*- coding: utf-8 -*-
i=3
print('0~1000中用3除余2,用5除余3,用7除余2的数有:')
while 7*i+2<=1000:
if(7*i+2)%5==3 and (7*i+2)%3==2:
print(7*i+2,end=' ')
i+=1
这道题的话,我没有一个一个的累加,而是累加七,这样要更快
# -*- coding: utf-8 -*-
r=0
h=100
for i in range(1,20):
print('小球在第',i,'次落地时,共经过',r,'米')
r+=h
h/=2
print(str.format('第{}次反弹{}米',i,h))
这道题书上的结果很迷啊,我把第一段的100去掉后才差不多,但是。。。
书上的第十次是199.80米,反弹0.20米,可结果是第11次和第9次
# -*- coding: utf-8 -*-
r=1
for i in range(8,0,-1):
print(str.format('第{}天桃子数为:{}',i,r))
r=(r+1)*2
简单,不做评价
# -*- coding: utf-8 -*-
import random
n=random.randint(1,10)
t=1
r=0
for i in range(1,n+1):
r+=t
t=10*t+1
print(str.format('n={} Sn={}',n,r))
也是简单