解题思路:列数学表达式计算 原始代码:
# -*- coding: UTF-8 -*-# 文件名:test_03.pyfrom cmath import sqrtfor s in xrange(1,10000): a=sqrt(s+100) b=sqrt(s+268) if((a*a==s+100) and (b*b==s+268)): PRint s错误归纳: 1、math和cmath的差别如下: **math提供对实数的支持。**math模块实现了许多对浮点数的数学运算函数,这些函数一般是对平台C库中同名函数的简单封装。 Python提供对于复数运算的支持,复数在Python中的表达式为C==c.real + c.imag*j,python支持它的加减乘除运算,同时提供cmath模块对复数其他复杂运算进行支持。 2、math.sqrt(x)返回的是float,实际上得到的结果是小数,所以再平方回去实际上还是等于原来那个数,因此需要int转换一下。 修改后代码如下:
# -*- coding: UTF-8 -*-# 文件名:test_03.pyimport mathfor s in xrange(1,10000): a=int(math.sqrt(s+100)) b=int(math.sqrt(s+268)) if((a*a==s+100) and (b*b==s+268)): print s做题思路:分别存储输入的三个数,依次排序并交换
# -*- coding:utf-8 -*-x=int(raw_input("请输入第一个整数:"))y=int(raw_input("请输入第二个整数:"))z=int(raw_input("请输入第三个整数:"))if x>y: x,y=y,xif x>z: x,z=z,xif y>z: y,z=z,yprint "三个数从小到大为:%d,%d,%d"%(x,y,z)错误归纳: 1、以上正确,注意输出多个变量需要输出一个元组,元组是要用括号括起来的。把多个变量组成一个元组再操作会显得更加清晰——即下列temptuple。 2、交换两个数,x ,y=y ,x
# -*- coding:utf-8 -*-x=int(raw_input("请输入第一个整数:"))y=int(raw_input("请输入第二个整数:"))z=int(raw_input("请输入第三个整数:"))if x>y: x,y=y,xif x>z: x,z=z,xif y>z: y,z=z,ytemptuple=(x,y,z)print "三个数从小到大为:%d,%d,%d"%temptuple新闻热点
疑难解答