Demo56:
编写一段函数,计算一个整数各个数字的和,使用函数头为def sumDigits(n):
def sumDigits(n):
s = int(n)
count=0
for i in range(len(n)):
count += int(s%10)
s = s/10
print(count)
sumDigits(input("请输入你的值"))
Demo59:
实现摄氏度与华氏度之间的转化(使用函数进行实现)
def celsiusToFahrenheit(celsius):
f = eval(Tempstr[:-1]) * 1.8 + 32
print('转化后的温度是{:.2f}F'.format(f))
def fahrenheitToCelsius(fahrenheit):
c = (eval(Tempstr[:-1]) - 32) / 1.8
print('转换后的温度是{:.2f}C'.format(c))
Tempstr = input('请输入一个带有符号的温度值:')#输入带单位温度值
if Tempstr[-1] in ['C','c']:
celsiusToFahrenheit(Tempstr)
elif Tempstr[-1] in ['F','f']:
fahrenheitToCelsius(Tempstr)
else:
print('输入格式错误,请输入时带上单位')
Demo 60
#计算m(i) = 1/2 + 2/3 + .... +i /(i+1)
n = int(input("请输入你的n\n"))
m = 0
for i in range(1,n+1):
m += (i)/(i+1)
print(m)
Demo61 编写一个测试程序,读入三角形三边的值,若输入有效则计算面积。否则,显示输入无效
from math import sqrt # 使用sqrt需要引用math库
def ares(a, b, c): # 编写函数使用海伦公式计算面积
p = (a + b + c) / 2
ss = sqrt(p * (p - a) * (p - b) * (p - c))
return ss
S = 0 # 初始化面积值为0
a = float(input())
b = float(input())
c = float(input())
if ((a + b > c) and (a + c > b) and (b + c > a)):
# 可以组成三角形的条件:任意两边之和大于第三边
S = ares(a, b, c)
print("%.2f" % S)
else:
print("数据错误")
Demo 62 :
使用巴比伦函数,实现求出n平方根的近似值
def square_root(n):
root = n / 2
for k in range(20):
root = (1 / 2) * (root + (n / root))
return root
print(square_root(6))
Demo64:编写程序显示前100个回文数。要求:每行显示10个数值,并且准确对齐!
def is_prime(n):
flag = True
for divisor in range(2, n // 2 + 1):
if n % divisor == 0:
flag = False
break
return flag
def is_palindrome(n):
result = 0
if n < 0:
n = -n
t = n
while t != 0:
remainder = t % 10
result = result * 10 + remainder
t //= 10
return n == result
def main():
n = int(input())
count = 0
i = 2
while count < n:
if is_prime(i) and is_palindrome(i):
print(format(i, "6d"), end='')
count += 1
if count % 5 == 0:
print()
i += 1
main()
Demo64 实现前100个反素数。要求同上
def is_zhishu(num):
for divisor in range(2, num // 2 + 1):
if num % divisor == 0:
return False
return True
def reverse(num):
return int(str(num)[::-1])
def is_not_huiwenshu(num):
if str(num) != str(num)[::-1]:
return True
count = 0
num = 1
while count < 100:
if is_zhishu(num) and is_zhishu(reverse(num)) and is_not_huiwenshu(num):
print("%4d" % num,end=" ")
count += 1
if count % 10 == 0:
print()
num += 1