• 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("")
  • 相关阅读:
    lvs负载均衡之配置lvs-dr模式的httpd负载集群
    嵌入式分享合集116
    代码随想录算法训练营第四十六天| 完全背包、518.零钱兑换 II 、377.组合总和 Ⅳ
    【重新定义matlab强大系列十六】求解混合整数线性问题
    vue-组件通信(二)
    ES6中的set、map
    自适应蝴蝶算法附matlab代码IBOA
    通过elementUI学习vue
    linux环境下的nc(ncat的简写)命令用法和udp端口检测
    Go 1.19 发行说明(翻译)
  • 原文地址:https://blog.csdn.net/AXDRXS/article/details/136241238