Python 程序设计实验2:Python 基础练习
实验2:Python 基础练习
1. 质数
编写以下两个函数:
1)检查⼀个整数是否是⼀个质数:isPrime(number)
2)输出前N个质数:printPrimeNumbers(N),将输出结果写⼊⽂件,命名为 FirstN_,N应为相应的数字。
(1)⼤致思路
①质数判断: ⾸先判断是否是⼩于等于1的数字,如果是,则不为质数。其次,使⽤从2到该数减⼀的数字依次对这个数字取余,如果余数为零,即这个数存在⾮1与⾃⼰本⾝的因⼦。该数字即不为质数。否则即为质数。 ②输出并读写⽂件: 使⽤⽂件流创建对应名字的⽂件,并清零计数器。每⽣成⼀个质数,通过输出流写⼊⽂件中并计数器加⼀,直⾄计数器达到n并跳出循环。
(2)代码实现
⾸先,定义判断质数函数,先判断是否是⼩于等于1的数字,如果是,则不为质数。其次,使⽤从2到该数减⼀的数字依次对这个数字取余,如果余数为零,即这个数存在⾮1与⾃⼰本⾝的因⼦。该数字即不为质数。否则即为质数。
获取了n的输⼊之后,使⽤⽂件流创建对应名字的⽂件,并清零计数器。每⽣成⼀个质数,通过输出流写⼊⽂件中并计数器加⼀,直⾄计数器达到n并跳出循环。
(3)运⾏并测试# 定义判断质数函数  def  isPrime (number ):      if  number <= 1:          return  False      for  i in  range (2, number - 1):          if  number % i == 0:              return  False      return  True      # 获取n 的输⼊  n = eval (input ("Please input a number:"))  # 通过输出流创建对应⽂件  myFile = open ("First"+str (n )+"_", "w")  count = 0  num = 0    # 循环获取质数,并存⼊⽂件中  while  count < n :      num += 1      if  isPrime (num ):          count += 1          myFile .write (str (num )+"\n")
1
2
以下哪种元素是微量元素
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
①开始运⾏,程序将提⽰输⼊⼀个数字n
②我们输⼊20,并敲击回车之后程序将开始执⾏。
php程序设计就业方向
我们可以看到,已经⽣成了对应的结果⽂件。
打开⽂件后可以发现,结果被正确的写⼊到⽂件中。
2. emirp数(prime的反向拼写)
emirp数是⼀种特殊的质数,它反向书写时也是⼀个质数。例如,17和71都是质数,所以17和71都是emirp数。编写⼀个函数
emirp(N),输出前N个emirp数到⽂件中,每⾏最多显⽰10个数字,如下所⽰。⽂件命名为FirstN_,N应为相应的数字。
13 17 31 37 71 73 79 97 107 113
149 157 167 179 199 311 337 347 359 389
(1)⼤致思路
①质数判断: ⾸先判断是否是⼩于等于1的数字,如果是,则不为质数。其次,使⽤从2到该数减⼀的数字依次对这个数字取余,如果余数为零,即这个数存在⾮1与⾃⼰本⾝的因⼦。该数字即不为质数。否则即为质数。 ②数字翻转: 可以先将数字转为字符串,并将字符串翻转之后再转为int型 ③输出并读写⽂件: 使⽤⽂件流创建对应名字的⽂件,并清零计数器。每⽣成⼀个质数,通过输出流写⼊⽂件中并计数器加⼀,直⾄计数器达到n并跳出循环。 ④换⾏处理: 可以通过每次输出时对计数器进⾏对10的取余,即完成每10个数⼀换⾏。
(2)代码实现
⾸先,定义emirp判断函数,分别对数字进⾏判断,只有原数字与转置数字不相等也都为质数的情况下才满⾜条件并将数字输出到⽂件中。获取了n的输⼊之后,使⽤⽂件流创建对应名字的⽂件,并清零计数器。每⽣成⼀个质数,通过输出流写⼊⽂件中并计数器加⼀,直⾄计数器达到n并跳出循环。sd发卡系统源码
每次输出的时候将计数器对10进⾏取余完成每10个数字换⼀次⾏。
(3)运⾏并测试# 定义判断质数函数  def  isPrime (number ):      if  number <= 1:          return  False      for  i in  range (2, number - 1):          if  number % i == 0:              return  False      return  True      # 定义数字翻转函数  def  reverse (n ):      s = str (n )  # 转为字符串      s = s [-1::-1]  # 字符串反转      n = int (s )  # 转为数字      return  n      # 定义emirp 函数  def  emirp (n ):      # 通过输出流创建⽂件      myFile = open ("First" + str (n ) + "_Emirp_Numbers", "w")      count = 0      num = 0      # 循环获取质数,并存⼊⽂件中      while  count < n :          num += 1          if  isPrime (num ) and  isPrime (reverse (num )) and  num != reverse (num ):              count += 1              myFile .write (str (num ) + " ")              # 如果已经⼗个数字则换⾏              if  count % 10 == 0:                  myFile .write ("\n")      # 获取n 的输⼊  n = eval (input ("Please input a number:"))  emirp (n )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
php前端开发招聘29
30
31
32
33
34
35
36
37
38
39
①开始运⾏,程序将提⽰输⼊⼀个数字:
②输⼊结束之后程序完成运⾏,可以看到对应⽂件已经被创建了。
⽽且也实现了每⼗个数字换⾏⼀次。
3. 近似平⽅根
有⼏种⽅法可以实现 Python math 模块中的 sqrt 函数,其中⼀种⽅法被称为巴⽐伦函数法。它使⽤以下公式,不断逼近⼀个数 n 的平⽅根
当 nextGuess 和 lastGuess ⼏乎相同时,nextGuess 就是近似平⽅根。初始猜测,即 lastGuess 的起始值,可以是任何正值(例如
1)。如果 nextGuess 和 lastGuess的差⼩于⼀个⾮常⼩的数字,例如 0.0001,那么可以说 nextGuess 是 n 的近似平⽅根,如果不是,则 nextGuess 变为 lastGuess,近似过程继续。根据以上⽅法,实现返回 n 的平⽅根的函数 my_sqrt(n)。
(1)⼤致思路
通过while循环,进⾏每次计算,并对每次循环结果与上次循环做差进⾏判断,如果在阈值以内则跳出循环并返回,否则更新当前结果,并继续循环。
nextGuess =2lastGuess +
lastGuess
n
(2)代码实现
⾸先定义初始值,并通过while循环进⾏每次运算,通过if对每次循环的结果进⾏判断,如果两次运⾏的差的绝对值⼩于阈值,则将结果返回,否则继续进⾏循环运算直⾄两次运⾏的差的绝对值⼩于阈值。
接受输⼊后调⽤函数并将结果输出。
(3)运⾏并测试
①运⾏程序,将提⽰输⼊⼀个数字:
②输⼊完成后即可看到计算出的平⽅根结果
软件测试的工作内容4. ⾃定义 Triangle 模块
编写⼀个模块 Triangle,包含以下三个函数:
1. isValid(side1, side2, side3): 输⼊三条边长度,判断是否组成三⾓形;
2. perimeter(side1, side2, side3): 输⼊三条边长度,求三⾓形周长;
3. area(side1, side2, side3): 输⼊三条边长度,求三⾓形⾯积。
⾃⾏设计主程序验证模块是否编写正确。
(1)⼤致思路# 定义开⽅函数  def  mySqrt (num ):      # 赋初值      lastGuess = 1      # 利⽤循环进⾏判断      while  True :          nextGuess = (lastGuess + (num / lastGuess )) / 2          # 如果⼩于阈值则返回          if  abs (nextGuess - lastGuess ) < 1e -5:              return  nextGuess          # 继续运算          lastGuess = nextGuess      # 获取输⼊  num = eval (input ("Please in put a number:"))  print (mySqrt (num ))
1
2
python基础代码练习3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。