Python经典基础编程练习题(二)——每日10题

1.编写一个程序,输入若干个单词,并且以逗号分隔按字母顺序排序后,以逗号分隔打印单词。输入:without,hello,bag,world,输出:bag,hello,without,world

解题思路:掌握分词和排序函数

a=input("请输入一串单词:")
list1=a.split(',')
list1.sort()
print(','.join(list1))

2.输入某年某月某日,判断这一天是这一年的第几天?

解题思路:注意判断闰年和输出格式

year=int(input('请输入年:'))
month=int(input('请输入月:'))
day=int(input('请输入日:'))
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 1<= month <=12:
   s=months[month-1]
else:
    print('输入错误,已经退出')
s+=day
if(year%400==0) or (year%4==0 and year%100!=0):
    if(month>2):
        s+=1

print('这是%d年的第%d天' % (year,s))#格式化输出2个或2个以上数字的时候,注意输出格式

3.输入三个整数x,y,z,请把这三个数由小到大输出。

解题思路:排序函数的应用

a=input('请输入a:')
b=input('请输入b:')
c=input('请输入c:')
list1=[]
list1.append(a)
list1.append(b)
list1.append(c)
list1.sort()
print(list1)

4.用*输出一个5行的左下三角形。

解题思路:注意输出格式的排版

for i in range(1,6):
    for j in range(1,i+1):
        print('*',end=' ')
    print('\n')

5.以左下三角的形式输出1~9乘法口诀

解题思路:和第四题类似,注意格式输出

for i in range(1,10):
    for j in range(1,i+1):
        print('%d * %d = %d' % (i,j,i*j),end='   ')
    print('')#在python中的print()有自动换行的功能,若再加换行符‘\n’,则会自动换2行

6.判断101-200之间有多少个素数,并输出所有素数。

解题思路:注意for循环、break之间的运用,用到了sqrt(),可节约运算时间

import math
t=1
for i in range(101,201):
    k=int(math.sqrt(i))
    for j in range(2,k+1):
        if i % j ==0:
            t=0
            break
    if(t==1):
        print(i,end=' ')
    t=1

7.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身

解题思路:注意多种除法之间的区别

for i in range(100,1000):
    a=i%10
    b=i//10%10
    c=i//100
    if(a*a*a+b*b*b+c*c*c==100*c+10*b+a):
        print(i,end=' ')

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

解题思路:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

n=int(input('请输入一个数:'))
l=[]
while n!=1:
    for i in range(2,n+1):
        if n%i ==0:
            str='%s' % i
            l.append(str)
            n=n//int(str)
l.sort()
print('*'.join(l))

9.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

解题思路:简单的if语句

score = int(input('input score:'))
if score >= 90:
    grade = 'A'
elif score >= 60:
    grade = 'B'
else:
    grade = 'C'

print ('%d belongs to %s' % (score,grade))

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

解题思路:导入string,使用内置函数

import string
s = input('input a string:')
letters = 0#统计英文字母的个数
space = 0#统计空格的个数
digit = 0#统计数字的个数
others = 0#统计其他字符的个数
for c in s:
    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))
发布了32 篇原创文章 · 获赞 17 · 访问量 4917

猜你喜欢

转载自blog.csdn.net/mango_ZZY/article/details/98357283