python例题(05)

Posted 雨天_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python例题(05)相关的知识,希望对你有一定的参考价值。

1.输入一个十进制数,输出二进制、八进制、十六进制

a = int(input('请输入一个十进制整数:'))
print(a,'转化的二进制为',bin(a))
print(a,'转化的八进制为',oct(a))
print(a,'转化的十六进制为',hex(a))
# 请输入一个十进制整数:12
# 12 转化的二进制为 0b1100
# 12 转化的八进制为 0o14
# 12 转化的十六进制为 0xc

2.输入华氏温度,输出摄氏温度,公式为:C=5/9*(F-32)

f=int(input('请输入华氏温度:'))
c=5/9*(f-32)
print('摄氏温度为%.2f'%c)
# 请输入华氏温度:75
# 摄氏温度为23.89

3.键盘输入两个整数a和b,合并成一个新四位数,例如:a=54,b=12,c=5142

a=int(input('请输入一个两位数整数:'))
b=int(input('请输入一个两位数整数:'))
if a>=100 and b>=100:
    print('输入数据有误,请重新输入!')
elif a<=10 and b<=10:
    print('输入数据有误,请重新输入!')
else:
    c=a//10*1000+b//10*100+a%10*10+b%10
    print('合成的新四位数为:',c)
# 请输入一个两位数整数:54
# 请输入一个两位数整数:12
# 合成的新四位数为: 5142

4.发工资遇到一个问题,根据每个人工资总额计算钞票面值的张数,且总张数最少。如:15896

a=int(input('请输入你的工资总额:'))
print('100元的张数为:',a//100)
print('50元的张数为:',a%100//50)
print('20元的张数为:',a%100%50//20)
print('10元的张数为:',a%100%50%20//10)
print('5元的张数为:',a%100%50%20%10//5)
print('1元的张数为:',a%100%50%20%10%5)
# 请输入你的工资总额:15896
# 100元的张数为: 158
# 50元的张数为: 1
# 20元的张数为: 2
# 10元的张数为: 0
# 5元的张数为: 1
# 1元的张数为: 1

5.输入三角形边长,输出面积:

其中s=(a+b+c)/2

import math
a = int(input('请输入边长:'))
b = int(input('请输入边长:'))
c = int(input('请输入边长:'))
s = (a+b+c)/2
area = math.sqrt(s*(s-a)*(s-b)*(s-c))
print('面积为:',area)
# 请输入边长:3
# 请输入边长:4
# 请输入边长:5
# 面积为: 6.0

6.输入两个数,输出最大值

a=int(input('请输入第一个值:'))
b=int(input('请输入第二个值:'))
max=a
if a<b:
    max=b
print('最大值为:',max)
# 请输入第一个值:12
# 请输入第二个值:23
# 最大值为: 23

7.输入一个整数,判断奇偶数

a = int(input('请输入一个整数:'))
if a%2==0:
    print('该数是偶数')
else:
    print('该数是奇数')
# 请输入一个整数:12
# 该数是偶数

8.判断一个数能被7或11整除,但不能同时被7或11整除

a = int(input('请输入一个整数:'))
if (a%7==0 or a%11==0) and a%77!=0:
    print('yes')
else:
    print('no')
# 请输入一个整数:7
# yes

9.判断闰年:可被4整除,不能被100整除,可被400整除

y = int(input('请输入一个四位数年份:'))
if y%4==0 and y%100!=0 or y%400==0:
    print('该年是闰年')
else:
    print('该年是平年')
# 请输入一个四位数年份:2020
# 该年是闰年

10. 输入三个整数,降序输出:

a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
c = int(input('请输入第三个整数:'))
if a>b>c:
    print(a,b,c)
elif a>c>b:
    print(a,c,b)
elif b>c>a:
    print(b,c,a)
elif b>a>c:
    print(b,a,c)
elif c>a>b:
    print(c,a,b)
else:
    print(c,b,a)
# 请输入第一个整数:3
# 请输入第二个整数:4
# 请输入第三个整数:2
# 4 3 2

11.输入一个百分制成绩,输出等级

a = int(input('请输入一个百分制成绩:'))
if a <= 0 or a > 100:
    print('输入数据有误,请重新输入!')
elif 100 >= a >= 90:
    print('优秀')
elif 80 <= a < 90:
    print('良好')
elif a >= 60:
    print('及格')
else:
    print('不及格')
# 请输入一个百分制成绩:79
# 及格

12.计算下列多项式的值:

sum=1
for i in range(2,101):
    sum = sum + 1 / i
print('%.6f'%sum)
# 5.187378

13.计算下列多项式的值

sum = 1
f = -1
for i in range(2,101):
    sum= sum+1/i*f
    f = -f
print('%.6f'%sum)
# 0.688172

14.计算下列多项式的值

sum = 1
num = 1
for i in range(2,101):
    num = num +i
    sum = sum + 1/num
print('%.6f'%sum)
# 1.980198

15.计算下列多项式的和

z = 3
m = 2
t = 0
sum = 0
for i in range(20):
    t = z
    z = m+z
    m = t
    sum = sum + z/m
print('%.6f'%sum)
# 32.396329

16.计算π的近似值公式

pi = 1
f = -1
i = 3
while 1/i>1e-6:
    pi = pi +1/i*f
    f = -f
    i = i+2
print('pi=%.6f'%(pi*4))
# pi=3.141591

17.用泰勒级数计算e的近似值

sum = 1
t = 1
i = 1
while 1/t>1e-6:
    t = t*i
    sum = sum + 1/t
    i += 1
print('sum=%.6f'%sum)
# sum=2.718282

18.计算a+aa+aa+aaa…aaa的值,计算前六项和,a=2

a = 2
sum = 0
for i in range(6):
    sum = sum + a
    a = a*10 + 2
print('sum = ',sum)
# sum =  246912

19.计算r=1到r=10时的圆的面积,直到面积大于100为止

import math as a
for r in range(1,11):
    area = a.pi*r*r
    if area>100:
        break
print('r:',r,'area: is:%.6f'%area)
# r: 6 area: is:113.097336

20.将100-150之间的不能被3整除的数输出,一行输出10个数

i = 0
for n in range(100,151):
    if n%3 == 0:
        continue
    print(n,end='  ')
    i+= 1
    if i%10 == 0:
        print()
# 100  101  103  104  106  107  109  110  112  113
# 115  116  118  119  121  122  124  125  127  128
# 130  131  133  134  136  137  139  140  142  143
# 145  146  148  149

21.找出2,3,5的最小公倍数

for i in range(1, 100):
    if i % 2 == 0 and i % 3 == 0 and i % 5 == 0:
        print('%d是2,3,5的最小公倍数' % i)
        break
else:
    print('未找到!')
# 30是2,3,5的最小公倍数

22.输入整数,判断是否为素数:

# 法1
p = int(input('请输入一个正整数:'))
if p<2:   # 保证输入数据大于2
    print('请输入大于2的正整数!')
else:
    for i in range(2,p):
        if p%i == 0:
            print('平数')
            break
    else:   # 循环顺利结束后执行
        print('素数')
# 请输入一个正整数:12
# 平数

# 法2
p = int(input('请输入一个正整数:'))
i = 2
if p<2:   # 保证输入数据大于2
    print('请输入大于2的正整数!')
else:
    while p%i !=0:   # 检测结果是否为非0
        i = i+1
    if i == p:
        print('素数')
    else:
        print('平数')
# 请输入一个正整数:11
# 素数

23.输出100以内的素数

for i in range(2,100):   #遍历2-99
    for j in range(2,i):
        if i%j == 0:
            break
    else:
        print(i,end='  ')  # 输出素数
# 2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97 

24.输出200-400的非素数

t = 0
for m in range(200, 400):
    for n in range(2, m):
        if m % n == 0:
            print(m, end='  ')
            t = t+1
            if t%10==0:
                print()
            break

25.输出大于s且紧随s的k个素数

s = int(input('请输入起始值:'))
k = int(input('请输入需要的素数个数:'))
i = s + 1
t = 0  # 计数器,记录找到的素数个数
while t < k:  # 当自己找到的素数个数t小于指定个数k的时候,继续寻找
    for j in range(2, i):   # 判断i是否为素数
        if i % j == 0:
            break
    else:
        t = t + 1   # 记录找到的素数个数
        print(i, end='  ')  # 输出素数
    i = i + 1  # 继续下一个数的寻找
# 请输入起始值:12
# 请输入需要的素数个数:3
# 13  17  19  

26.输入100以内被9整除,余数为2的数,计算其平均值的平方根并输出

a = 0
t = 0  # 计数器
for i in range(100):
    if i % 9 == 2:  # 计算对9取余,余数为2
        print(i,end='  ')
        a = a + i  # 计算和值
        t = t + 1  # 记录个数
print('\\n a=%.2f'%((a/t)**0.5))
# 2  11  20  29  38  47  56  65  74  83  92  
#  a=6.86

27.输出水仙花数,一个三位数,每位立方和等于原值

for i in range(100,1000):
    if (i%10)**3 + (i//10%10)**3 + (i//100)**3 ==i:
        print('水仙花数:',i)
# 水仙花数: 153
# 水仙花数: 370
# 水仙花数: 371
# 水仙花数: 407

28.输出1000以内的完数,完数:因子之和等于原值,如:6==1+2+3

for i in range(6,1000):  #遍历0-999
    sum = 0  # 每判断一个i,必须先清零其因子之和
    for j in range(1,i):  # 寻找因子
        if i%j == 0:
            sum = sum + j  # 计算因子之和
    if sum==i:
        print(i,end='  ')
# 6  28  496  

29.输出100以内的同构数,同构数:一个正整数出现在它的平方书的右侧则为同构数。
如:5==25  6==36  25==625

for i in range(100):
    # 100以内同构数平方后可能为2位数或者3位数
    if i==i*i%10 or i==i*i%100:
        print(i,end='  ')
# 0  1  5  6  25  76  

30.输出200以内的回文数字

for i in range(200):
    t = 0  # 倒置后数
    m = i
    while m > 0:  #对i进行整数倒置
        t = t*10 + i%10
        m=m//10
    if t == i:
        print(i,end=' ')
# 0 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111

31.求整数a与b的最小公倍数

# 法1:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
i = 1
while 1:  # 循环恒真时执行下列语句
    if i % a == 0 and i % b == 0:
        print('最小公倍数:', i)
        break  # 第一次找到公倍数就跳出,保证是最小公倍数
    i = i + 1
# 请输入第一个整数:12
# 请输入第二个整数:23
# 最小公倍数: 276
# 法2
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
i = 0
while 1:  # 循环恒真时执行下列语句
    i += a  # i默认是a的倍数,
    if i % b == 0:
        print('最小公倍数:', i)
        break  # 第一次找到公倍数就跳出,保证是最小公倍数
# 请输入第一个整数:12
# 请输入第二个整数:42
# 最小公倍数: 84

32.求整数x和y的大公约数以及最小公倍数

x = int(input('请输入第一个整数:'))
y = int(input('请输入第二个整数:'))
l = x * y  # l是最小公倍数
while x % y != 0:  # 辗转相除法
    t = x % y
    x = y
    y = t
g = y  # g是最大公约数
l = l // g
print('最大公约数:', g, '最小公倍数', l)
# 请输入第一个整数:12
# 请输入第二个整数:23
# 最大公约数: 1 最小公倍数 276

33.在键盘输入四位数整数,转换为英文单词输出。如:1024  one zero two four

a = int(input('请输入一个四位数整数:'))
t = 1000
if a >= 1000 and a < 10000:
    while t > 0:
        if a // t % 10 == 0:
            print('zero', end='  ')
        elif a // t % 10 == 1:
            print('one', end='  ')
        elif a // t % 10 == 2:
            print('two', end='  ')
        elif a // t % 10 == 3:
            print('three', end='  ')
        elif a // t % 10 == 4:
            print('four', end='  ')
        elif a // t % 10 == 5:
            print('five', end='  ')
        elif a // t % 10 == 6:
            print('six', end='  ')
        elif a // t % 10 == 7:
            print('seven', end='  ')
        elif a // t % 10 == 8:
            print('eight', end='  ')
        elif a // t % 10 == 9:
            print('nine', end='  ')
        t = t // 10
else:
    print('您输入的数据有误')
# 整数由左向右拆分
# 请输入一个四位数整数:1024
# one  zero  two  four 

34.fibonacci数列,古典数学问题:一对兔子,出生后第三个月都生出一对兔子,小兔子到第三个月又生出一对兔子,兔子不死,问兔子的出生规律:1 1 2 3 5 8 13……

a1 = 1
a2 = 1
for i in range(6):
    print(a1,a2,end=' ')
    a1 = a1 + a2
    a2 = a1 + a2
# fibonacci:当前项等于前两项之和
# 1 1 2 3 5 8 13 21 34 55 89 144 

35.计算fibonacci数列中大于t的最小值,如:t = 6,输出8

a1 = 0
a2 = 1
a3 = 1
t = int(input('请输入需要的t的大小:'))
while a3 <= t:
    a1 = a2
    a2 = a3
    a3 = a1 + a2
print('大于t的fibonacci最小值为:', a3)
# 请输入需要的t的大小:4
# 大于t的fibonacci最小值为: 5

36.有一张足够大的纸,厚度为0.09mm,对折多少次后超过8848m(珠穆朗玛峰高度)

t = 0
h = 0.09e-3  # 纸的厚度,单位统一为米
while 1:
    h = h * 2  # 对折,厚度乘2
    t = t + 1  # 记录对折次数
    if h>8848:
        break
print('对折了',t,'次')
# 对折了 27 次

37.爱因斯坦阶梯问题,多级阶梯,每步跨2阶余1阶、跨3阶余2阶、跨5阶余4阶、跨6阶余5阶、跨7阶正好到顶。一共多少阶?

i = 7
while 1:
    if i%2==1 and i%3==2 and i%5==4 and i%6==5 :
        break
    i +=7
print('阶梯总数为:',i)  #119

38.百钱买百鸡问题。鸡翁值钱5,鸡母值钱3,鸡雏3值1钱,百钱买白鸡,鸡翁,鸡母,鸡雏各几何?

for c in range(101):
    for h in range(101):
        for ch in range(101):
            if c + h + ch ==100 and c*5 + h*3 + ch//3 == 100 and ch%3 ==0:
                print('公鸡=',c,'只','母鸡=',h,'只','小鸡=',ch,'只')
# 公鸡= 0 只 母鸡= 25 只 小鸡= 75 只
# 公鸡= 4 只 母鸡= 18 只 小鸡= 78 只
# 公鸡= 8 只 母鸡= 11 只 小鸡= 81 只
# 公鸡= 12 只 母鸡= 4 只 小鸡= 84 只

39.搬砖问题:36个人36块砖,男4女3,小孩2人1块,一次性搬完,需要各多少人?

for m in range(10):
    for w in range(14):
        for c in range(37):
            if m + w + c == 36 and m * 4 + w * 3 + c // 2 == 36 and c % 2 == 0:
                print('男=', m, '人', '女=', w, '人', '小孩=', c, '人')
# 男= 3 人 女= 3 人 小孩= 30 人

40.猴子偷桃:一天吃一半还多吃一个,第七天吃完,偷桃总数?

n = 0
for i in range(7):
    n = (n + 1) * 2
print('桃子总数:', n)
# 桃子总数: 254

41.打印图形

h = int(input('请输入图形高度:'))
for i in range(h):
    for j in range(0, h - i - 1):
        print(' ', end='')
    for k in range(0, 2 * i + 1):
        print('*', end='')
    print()
# 请输入图形高度:6
#      *
#     ***
#    *****
#   *******
#  *********
# ***********

42.打印图形

h = int(input('请输入图形高度:'))
for i in range(h):
    for j in range(i):
        print(' ', end='')
    for k in range( 2 *(h-i)-1 ,0, -1):
        print('*', end='')
    print()
# 请输入图形高度:7
# *************
#  ***********
#   *********
#    *******
#     *****
#      ***
#       *

43.打印图形

h = int(input('请输入图形高度:'))
for i in range(h):
    for j in range(h-i):
        print(' ',end='')
    for k in range(i+1):
        print('*',end='')
    print()
# 请输入图形高度:7
#        *
#       **
#      ***
#     ****
#    *****
#   ******
#  *******

python常见的例题

python语言类型:强类型语言,动态语言

例题

1.求100以内的奇数之和

可以通过对2取余不等于0的就是奇数或者使用for循环的步进打印奇数

s=0

for i in range(1,100,2)

  s+=i

print(s)

2.求1~5的阶乘之和

使用for循环设定范围,在循环累加

a=1
s=0
for i in range(1,6):
    a=a*i
    s=s+a
print(s)

3.给定一个5位数,倒序打印

先要判断五位数的后面是否有0,如果有就不打印,如果中间有0的话不能跳过。例如:20500

a=20500

b=10

flag=False #开关

for i in range(a):

  s=a%b

  a=a//b

  if flag or s:    #第一次和第二次循环s=0,flag=False无法进入,第三次s=5可以进入,进入if后flag=True,所以后面的0也可以打印

    print(s)

    flag=True

  

4.打印100以内的斐波那契数列

可以使用while循环实现

a=0

b=1

while b<100:

  print(b)

  a,b=b,a+b

5.求斐波那契数列第101位

a=0

b=1

for i in range(1,100):

  if i == 101:

    print(b)

  a,b=b,a+b

 

6.打印九九乘法表

可以使用for循环实现

for i in range(1,10):

  for j in range(i,10):

    s=i*j

    print(i,‘*‘,j,‘=‘,s,end=‘ ‘)
     print()

或使用.format实现

for i in range(1,10):
    line = ‘‘
    for j in range(i,10):
        line+= ‘{0}*{1}={2:<4}‘.format(i,j,i*j)
    print(line)

7.打印菱形

for i in range(-3,4):
    l=-i if i<0 else i
    print(‘ ‘*l+‘*‘*(7-l*2))

8.求100000以内的质数

count=0 #计数
for i in range(2,100000):
    for j in range(2,i-1):
        if i%j==0:
            break
    else:
        count += 1
        print(count,i)

 




















以上是关于python例题(05)的主要内容,如果未能解决你的问题,请参考以下文章

python开发基础例题

玩转 Python 列表解析式能用一行代码写的,千万别敲回车!

玩转 Python 列表解析式能用一行代码写的,千万别敲回车!

亲测可用!最火的Python语言开发工具!

Python开发Day05

总结+经典例题重做