当前位置:   article > 正文

Python习题详解

Python习题详解

练习:

1,计算100以内奇数的和

  1. #计算100以内所有奇数的和
  2. sum = 0
  3. # n = 1
  4. # while n < 100:
  5. # # sum = sum + n
  6. # sum += n
  7. # # n = n + 2
  8. # n += 2
  9. # print(sum)
  10. n = 99 #求偶数时n = 100
  11. while n > 0:
  12. sum += n
  13. # n = n - 2
  14. n -= 2
  15. print(sum)

2,打印直角三角形

  1. *
  2. **
  3. ***
  4. ****
  5. *****
  6. ******
  7. layer = int(input("请输入要打印的层数:")) #layer=3
  8. index = 1
  9. while index <= layer: #layer=3
  10. #打印*
  11. j = 1
  12. while j <= index: #index = 1 2 3
  13. print("*",end="")
  14. j += 1
  15. print() #换行
  16. index += 1 # index = 2 3 4

3,打印九九乘法表

  1. i = 1
  2. while i <= 9:
  3. j = 1
  4. while j <= i:
  5. print("%s * %s = %s "%(j,i,(i*j)),end="")
  6. j += 1
  7. print() #换行
  8. i += 1

优化:

  1. i = 1
  2. while i <= 9:
  3. j = 1
  4. while j <= i:
  5. res = i * j
  6. if res < 10:
  7. print("%s * %s = %s "%(j,i,(i*j)),end="")
  8. else:
  9. print("%s * %s = %s "%(j,i,(i*j)),end="")
  10. j += 1
  11. print() #换行
  12. i += 1

4,判断一个数是否为质数(质数)

质数又称为素数,一个大于1的自然数,除了1和它本身之外,不能被其他自然数整数的数叫做质 数,最小的质数是2,它是唯一一个偶数质数,例如:2,3,5,7,11,13,17等

  1. #判断一个数是否为质数(素数)
  2. num = int(input("请输入一个数:"))
  3. if num <=1:
  4. print("这个数不是质数")
  5. elif num == 2:
  6. print("这个数是质数")
  7. else:
  8. i = 2
  9. while i < num:
  10. if num % i == 0:
  11. print("这个数不是质数")
  12. break
  13. i += 1
  14. else:
  15. print("这个数是质数")

5,实现猜单词的小游戏

  1. 小提示:
  2. import random
  3. word = ("easy","python","difficult","hello")
  4. random.choice(word)
  5. 将单词的字母顺序打乱
  6. random.randrange()
  7. len()

import random

dir(random) ----- 查看某个模块(random)的所有的方法

help() ----- 调取帮助文档

  1. import random
  2. WORDS = ("import","pyhon","hello","easy","difficult")
  3. print("欢迎来到猜单词游戏!请将乱序的单词组合成正确的单词")
  4. iscontinue = "Y"
  5. while iscontinue == "Y" or iscontinue == "y" or iscontinue == "YES":
  6. words = random.choice(WORDS)
  7. right = words
  8. # print(words)
  9. #打乱顺序
  10. newword = ""
  11. while words:
  12. position = random.randrange(len(words))
  13. # print(position)
  14. # newword = newword + words[position]
  15. newword += words[position]
  16. # print(newword)
  17. words = words[:position]+words[(position+1):]
  18. print("乱序后的单词是:",newword)
  19. guess = input("请你猜单词:")
  20. """
  21. if guess == right :
  22. print("恭喜你,猜对了!")
  23. else:
  24. print("抱歉,猜错了!")
  25. """
  26. while guess != right and guess != "":
  27. print("抱歉,猜错了!")
  28. guess = input("请你继续猜:")
  29. if guess == right :
  30. print("恭喜你,猜对了!")
  31. iscontinue = input("你是否继续游戏Y/N:")

6,实现两个数的交换(用户输入两个数,存储到内存中的)

  1. num1 = int(input("请输入第一个数:"))
  2. num2 = int(input("请输入第二个数:"))
  3. #方法一:取中间变量
  4. # temp = num1
  5. # num1 = num2
  6. # num2 = temp
  7. #方法二:求和法
  8. # num1 = num1 + num2 # 30 = 10 + 20
  9. # num2 = num1 - num2 # 30 - 20 = 10
  10. # num1 = num1 - num2 # 30 - 10 = 20
  11. # 方法三:异或交换法(python独有 引入了寄存器)
  12. num1,num2 = num2,num1
  13. print("交换后的num1 = %s ,num2 = %s"%(num1,num2))

7,一个自然数与3的和是5的倍数,以3的差是6的倍数,这个自然数最小是多少?(while)

  1. # index = 0
  2. # while True:
  3. for i in range(1000):
  4. if (i + 3) % 5 == 0 and (i - 3 ) % 6 == 0:
  5. print(i)
  6. break
  7. i += 1

8,在400~500之间求一个数,它被2取余1,被5取余是3,被8取余是1,这个数是多少?

  1. for i in range(400,501):
  2. if i % 2 == 1 and i % 5 == 3 and i % 8 == 1:
  3. print(i)
  4. break

9,打印等腰三角形

  1. layer = int(input("请输入要打印的层数:"))
  2. #每一行
  3. for i in range(1,layer+1):
  4. #计算空格的个数
  5. sapce_num = layer - i
  6. for j in range(0,sapce_num):
  7. print(" ",end="")
  8. #计算*的个数
  9. star_num = 2 * i - 1
  10. for j in range(0,star_num):
  11. print("*",end="")
  12. print("")

10,打印实心菱形

  1. layer = int(input("请输入要打印的层数:"))
  2. while layer % 2 == 0:
  3. layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
  4. #上半部分
  5. for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
  6. #计算空格的个数
  7. sapce_num = layer - i
  8. for j in range(0,sapce_num):
  9. print(" ",end="")
  10. #计算*的个数
  11. star_num = 2 * i - 1
  12. for j in range(0,star_num):
  13. print("*",end="")
  14. print("")
  15. #下半部分
  16. for i in range(layer // 2 ,0,-1):
  17. #计算空格的个数
  18. sapce_num = layer - i
  19. for j in range(0,sapce_num):
  20. print(" ",end="")
  21. #计算*的个数
  22. star_num = 2 * i - 1
  23. for j in range(0,star_num):
  24. print("*",end="")
  25. print("")

11,打印空心菱形

  1. layer = int(input("请输入要打印的层数:"))
  2. while layer % 2 == 0:
  3. layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
  4. #上半部分
  5. for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
  6. #计算空格的个数
  7. sapce_num = layer - i
  8. for j in range(0,sapce_num):
  9. print(" ",end="")
  10. #计算*的个数
  11. star_num = 2 * i - 1
  12. for j in range(0,star_num):
  13. #判断一下是否是第一个和最后一个
  14. if j == 0 or j == star_num - 1:
  15. print("*",end="")
  16. else:
  17. print(" ",end="")
  18. print("")
  19. #下半部分
  20. for i in range(layer // 2 ,0,-1):
  21. #计算空格的个数
  22. sapce_num = layer - i
  23. for j in range(0,sapce_num):
  24. print(" ",end="")
  25. #计算*的个数
  26. star_num = 2 * i - 1
  27. for j in range(0,star_num):
  28. #判断一下是否是第一个和最后一个
  29. if j == 0 or j == star_num - 1:
  30. print("*",end="")
  31. else:
  32. print(" ",end="")
  33. print("")

12,打印两个组合在一起的三角形

  1. layer = int(input("请输入要打印的层数:"))
  2. while layer % 2 == 0:
  3. layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
  4. #上半部分
  5. for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
  6. #计算空格的个数
  7. sapce_num = layer - i
  8. for j in range(0,sapce_num):
  9. print(" ",end="")
  10. #计算*的个数
  11. star_num = 2 * i - 1
  12. for j in range(0,star_num):
  13. #判断一下是否是第一个和最后一个
  14. if j == 0 or j == star_num - 1 or i == layer // 2 + 1:#i == layer // 2 +
  15. 1判断是不是最后一行
  16. print("*",end="")
  17. else:
  18. print(" ",end="")
  19. print("")
  20. #下半部分
  21. for i in range(layer // 2 ,0,-1):
  22. #计算空格的个数
  23. sapce_num = layer - i
  24. for j in range(0,sapce_num):
  25. print(" ",end="")
  26. #计算*的个数
  27. star_num = 2 * i - 1
  28. for j in range(0,star_num):
  29. #判断一下是否是第一个和最后一个
  30. if j == 0 or j == star_num - 1:
  31. print("*",end="")
  32. else:
  33. print(" ",end="")
  34. print("")

13,打印圣诞树

  1. layer = int(input("请输入要打印的层数:"))
  2. while layer % 2 == 0:
  3. layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
  4. #上半部分
  5. for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
  6. #计算空格的个数
  7. sapce_num = layer - i
  8. for j in range(0,sapce_num):
  9. print(" ",end="")
  10. #计算*的个数
  11. star_num = 2 * i - 1
  12. for j in range(0,star_num):
  13. #判断一下是否是第一个和最后一个
  14. if j == 0 or j == star_num - 1 or i == layer // 2 + 1 or j == star_num
  15. // 2:#i == layer // 2 + 1判断是不是最后一行 j == star_num // 2判断是不是中间那一列
  16. print("*",end="")
  17. else:
  18. print(" ",end="")
  19. print("")
  20. #下半部分
  21. for i in range(layer // 2 ,0,-1):
  22. #计算空格的个数
  23. sapce_num = layer - i
  24. for j in range(0,sapce_num):
  25. print(" ",end="")
  26. #计算*的个数
  27. star_num = 2 * i - 1
  28. for j in range(0,star_num):
  29. #判断一下是否是第一个和最后一个
  30. if j == star_num // 2:
  31. print("*",end="")
  32. else:
  33. print(" ",end="")
  34. print("")

14,打印以下图形

  1. layer = int(input("请输入要打印的层数:"))
  2. while layer % 2 == 0:
  3. layer = int(input("请重新输入要打印的层数(注意要输入奇数行):"))
  4. #上半部分
  5. for i in range(1,layer // 2 + 2): #上半部分多打印一行 layer // 2 + 1 前闭后开的区间
  6. #计算空格的个数
  7. sapce_num = layer - i
  8. for j in range(0,sapce_num):
  9. print(" ",end="")
  10. #计算*的个数
  11. star_num = 2 * i - 1
  12. for j in range(0,star_num):
  13. #判断一下是否是第一个和最后一个
  14. if j == 0 or j == star_num - 1 or i == layer // 2 + 1 or j == star_num
  15. // 2:#i == layer // 2 + 1判断是不是最后一行 j == star_num // 2判断是不是中间那一列
  16. print("*",end="")
  17. else:
  18. print(" ",end="")
  19. print("")
  20. #下半部分
  21. for i in range(layer // 2 ,0,-1):
  22. #计算空格的个数
  23. sapce_num = layer - i
  24. for j in range(0,sapce_num):
  25. print(" ",end="")
  26. #计算*的个数
  27. star_num = 2 * i - 1
  28. for j in range(0,star_num):
  29. #判断一下是否是第一个和最后一个
  30. if j == 0 or j == star_num - 1 or j == star_num // 2:
  31. print("*",end="")
  32. else:
  33. print(" ",end="")
  34. print("")
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/161883?site
推荐阅读
相关标签
  

闽ICP备14008679号