1.判断闰年
编写程序判断输入的年是否为闰年。四年一闰;百年不闰,四百年再闰;千年不闰,四千年再闰。
选择结构的经典例题,关键在于对题目信息的整合,意识到千年和四千年的条件都是百年和四百年的子集。
a=int(input()) if a%4==0 and a%100!=0: #先描述出题目对于闰年的判断 print("Yes") elif a%400==0: #这个是特殊情况,特殊判断 print("Yes") else: #其他情况全部都不是闰年 print("No")
2.编程求解一元二次ax2+bx+c=0。
按照初中数学的方式来就行,把求根公式的过程用ifelse铺开
最大的障碍在虚根咋求忘了
import cmath import math a=int(input()) b=int(input()) c=int(input()) delta=b*b-4*a*c if delta>0: #当delta>0时 print(-b+math.sqrt(delta)/2*a) #B方减4AC系列 print(-b-math.sqrt(delta)/2*a) elif delta==0: #当delta=0时 print(-b/2*a) else: #当delta<0时 print(-b+cmath.sqrt(delta)/2*a)#求虚根 print(-b-cmath.sqrt(delta)/2*a)
3.在火车站托运行李时,规定50千克以内,每千克2元,超过部分每千克收费1.5元,编写程序,实现输入重量,输出付款金额。
比前两道题还简单的题目,描述题干即可
a=eval(input()) if a<50: print(a*2) else: print(100+(a-50)*1.5)
4.打印九九乘法表。分别写出格式一和格式二对应的Python程序。
建议配合这篇文章食用,关键在于第二层循环的含义以及控制的循环次数问题,
第一层循环进行一次,第二次循环进行一轮,像钟表一样。
for i in range(1,10): for j in range(1,i): #二层循环每一轮都比前一轮多循环一次 print(j,"*",i,"=",i*j,end=" ") #结尾的end参数控制输出的最后是个空格还是个换行 print("\n") for i in range (1,10): for j in range(1,10): if j<i: print(" ",end=" ") else: print(j,"*",i,"=",j*i,end=" ") print("\n")
5.算阶乘
先展示正常版的代码,也是循环的做法,这可以说是循环最最基础的应用了
从1循环到n即可
n=int(input()) t=1 #设置变量t用于统计,注意必须要设置成1,不能是0.变量的名字随意起 for i in range(1,n+1): #从2乘到n t*=i print(t)
不正常版就是递归的脑瘫做法,不仅慢还只能算到1000(python递归限制1000层)
def jiecheng(n): if n==1: #每个递归都要有一个退出条件,这个条件是整个递归思路的大组成部分 return 1 else: return n*jiecheng(n-1)#不难发现这里的公式基本就是循环方法的公式倒着写 n=int(input()) print(jiecheng(n))
6.斐波那契数列前20项
题干里面可以说吧递归的核心表达式直接给你了
退出条件考虑给你的那三个特殊值,递归的时候从后往前递归,总会回到那几个特殊值
def fib(n): if n==0: #条件1 return 0 elif n==1 or n==2: #条件2 return 1 else: return fib(n-1)+fib(n-2) #fib的公式逆推法 for i in range(1,21): print(fib(i))