首页 > 编程 > Python > 正文

Python基础练习——完全平方数,数字排序

2019-11-08 01:10:44
字体:
来源:转载
供稿:网友

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

解题思路:列数学表达式计算 原始代码:

# -*- 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

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

做题思路:分别存储输入的三个数,依次排序并交换

# -*- 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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表