Python 编程练习(2)

题目一:一行代码实现1--100之和

print(sum(range(101)))
#结果
5050

题目二:设计一个小程序,让用户输入一个整数x,判断0-x 这个数之间有多少个数是5的倍数?并把所有5的倍数用保存到一个列表里面,打印出来。

L = []
num = int(input('请输入一个整数:'))
for i in range(num+1):
    if i % 5 == 0:
        L.append(i)
print(L)
#结果:
请输入一个整数:30
[0, 5, 10, 15, 20, 25, 30]

题目三:已知小王所在的城市打车10元起步(3公里),3公里以后到20公里,每公里3元。 20公里以后每公里需另加0.8元的远途费,设计一个程序,输入公里数,自动计算出车费。

while True:
    km = input("请输入行驶的公里数km")
    if km == '0':
        print("欢迎下次使用")
        break
    km = float(km)
    if km <= 3:
        print("起步价为10元")
    elif km <=20:
        money = 10+(km-3)*3
        print('您行驶了%.2f千米,共花费%.2f元' % (km,money))
    else:
        money =(km-20)*0.8 + 61
        print('您行驶了%.2f千米,共花费%.2f元' % (km,money))
#结果:
请输入行驶的公里数km10.2
您行驶了10.20千米,共花费31.60元

题目四:Tomcat日志格式如下,请用较好的方法,从这个字符串中找出jsp文件名(例如下面的hadoop.jsp)。

192.168.88.1 - - [30/Jul/2017:12:54:40 +0800] "GET /MyDemoWeb/hadoop.jsp HTTP/1.1" 200 242

log = '192.168.88.1 - - [30/Jul/2017:12:54:40 +0800] "GET /MyDemoWeb/hadoop.jsp HTTP/1.1" 200 242'
end = log.find('.jsp')+4
begin = log.rfind('/',0,end)+1
print(log[begin:end])
#结果
hadoop.jsp             #查找.jsp只找到.,+4才能到p,查找/只找到/,+1才能到h

题目五:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
            s1 = i**3+j**3+k**3
            s2 = i*100+j*10+k
            if s1 == s2:
                print(s1)
#结果:
153
370
371
407

题目六:将一个正整数分解质因数。例如:输入90,打印出90=2* 3* 3* 5。

while 1:
    n = int(input('请输入一个整数:'))
    print('%d='%n,end='')
    while n>1:
        for i in range(2,n+1):
            if n%i==0:
                n=int(n/i)
                if n==1:
                    print('%d'%i,end='')
                else:
                    print('%d*'%i,end='')
                break
    print()
#结果:
请输入一个整数:34
34=2*17

题目七:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import string
s = input('请输入一行字符串:\n')
letters = 0
space = 0
digit = 0
others = 0
i = 0
while i <len(s):
    c = s[i]
    i+=1
    if c.isalpha():
        letters += 1
    elif c.isspace():
        space += 1
    elif c.isdigit():
        digit += 1
    else:
        others += 1
print('char = %d.space =%d, digit = %d, others = %d' % (letters,space,digit,others))

题目八:打印菱形图案

s = '*'
for i in range(1, 8, 2):
    print((s*i).center(7))
for i in reversed(range(1, 6, 2)):
    print((s*i).center(7))

#结果          #str.center(width[, fillchar])   width -- 字符串的总宽度  fillchar -- 填充字符。
    *
   ***
  *****
 *******
  *****
   ***
    *

猜你喜欢

转载自www.cnblogs.com/jiajiaba/p/10617270.html
今日推荐