您的位置:首页 > 编程语言 > Python开发

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

2019-08-03 18:01 274 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mango_ZZY/article/details/98357283

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

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

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

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

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

[code]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,请把这三个数由小到大输出。

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

[code]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行的左下三角形。

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

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

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

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

[code]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(),可节约运算时间

[code]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.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身

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

[code]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的值,重复执行第一步。

[code]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语句

[code]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,使用内置函数

[code]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))

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: