点击蓝字
关注我们
今天解决上节留下的三道习题
从键盘输入一元二次方程a*x*x+b*x+c=0的三个系数a,b,c,判断该方程是否有实根,若有,输出两个实根;若无,输出方程无实根。
import matha=eval(input('请输入系数a的值:'))b=eval(input('请输入系数b的值:'))c=eval(input('请输入系数c的值:'))delta=b*b-4*a*cif delta>=0:x1=(-b+math.sqrt(delta))/(2*a)x2=(-b-math.sqrt(delta))/(2*a)print('x1=',x1,'x2=',x2)else:print('方程无实根...')
当delta>=0时,方程有实根,所以这个表达式作为if的条件表达式,注意乘式在写成代码的时候乘号不能省略;
第6-7行分别求方程的两个实根,注意没有上下标的写法,所以数学上x1中的1这里只需正常输入即可;
为了保证数学计算的正确性,建议分式的分母和分子都分别加上括号。
第7-9行是一个语句块,必须缩进,切记!
从键盘输入一个年号,判断该年是否闰年,若是输出“YES”,否则输出“NO”。判断闰年的方法是:若年号能被4整除但不能被100整除,则该年是闰年;或年号能被400整除也是闰年。
year=eval(input('请输入一个年号:'))if year%4==0 and year%100!=0 or year%400==0:print(str(year)+'年是闰年!')else:print(str(year)+'年不是闰年!')
这道题目的关键是将题目判断闰年的条件转化为表达式,注意到题目判断闰年的条件有两个,满足其中一个条件即是闰年;
整除即求余数等于0,要用到求余数符号%,注意python中等号是==,不等号是!=。
输出时加上str()函数是因为在第1行接收输入时用eval()函数转换成了数值型,这里需将其转换成字符串类型再和后面的字符串连接。
从键盘输入一串字符,将其理解为银行卡密码,判断字符串长度是否为6且全部字符都是阿拉伯数字,若是则输出“密码格式正确”,否则输出“密码格式有误”。
a=input('请输入一串字符')if len(a)==6 and a.isnumeric()==True:print('密码格式正确')else:print('密码格式有误')
这道题目复习了字符串两个常用函数的用法,分别是len()和isnumeric(),前者是求字符串的长度,后者是判断字符串所有字符是否都是数字;
isnumeric()是字符串的一个函数,即使无需参数一对括号也不能省略;
第2行a.isnumeric()==True还可以写成a.isnumeric(),一般来说, 在if之后是一个表达式或者函数时,就是要判断其逻辑值是真还是假,有时候可以将==True省略,默认就是与True作相等的判断。




