python任意输入十个数字及其最小值_python算法题

本文介绍了16道基础Python编程题目,包括数字排列、完全平方数判断、日期计算、数字排序、九九乘法表、国际象棋棋盘、斐波那契数列、素数判断、水仙花数、分解质因数、最大公约数与最小公倍数、猴子吃桃问题、乒乓球比赛对阵、数列求和、阶乘求和、文件操作和模块导入等。通过这些练习,初学者可以加深对Python语法的理解和应用。
摘要由CSDN通过智能技术生成

最近看了python的语法,但是总感觉不知道怎么使用它,还是先来敲敲一些简单的程序吧。

1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

if __name__ == "__main__":

s = (1,2,3,4)

for a in s:

for b in s:

for c in s:

if a != b and b != c and c != a:

print "%d%d%d" %(a,b,c)

2.题目:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?

程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:

from math import sqrt

if __name__ == "__main__":

i = 1

while i < 100000:

a = int(sqrt(i + 100))

b = int(sqrt(i + 268))

if a **2 == (i + 100) and b **2 == (i + 268):

print i

i += 1

3.题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

if __name__ == "__main__":

days = {1:0,2:31,3:59,4:90,5:120,6:151,7:181,8:212,9:243,10:273,11:304,12:334}

year,month,day = input("year:"),input("month:"),input("day:")

if not days.has_key(month):

print "error input"

sum = days[month] + day

if month >= 2:

if year %400 == 0 or (year % 4 == 0 and year % 100 != 0):

sum += 1

print "it is the %dth day of the year." % sum

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

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

if __name__ == "__main__":

a,b,c = input(),input(),input()

if a > b: a,b = b,a

if a > c: a,c = c,a

if b > c: b,c = c,b

print "small to big: %d,%d,%d" %(a,b,c)

或者:

if __name__ == "__main__":

s = [input(),input(),input()]

s.sort()

print "small to big: %s" %s

5.题目:输出9*9口诀。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

if __name__ == "__main__":

for i in range(1,10):

for j in range(1,10):

print "%d*%d = %-3d" %(i,j,i*j),

print

6.题目:要求输出国际象棋棋盘。

程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

if __name__ == "__main__":

for i in range(8):

for j in range(8):

if (i + j) % 2 == 0:

print "%c"%219,else:

print "a",

print

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值