题目来源:
Python语法的25个练习题
https://www.52pojie.cn/thread-1689186-1-1.html

第12、15、24题为作业,请留在评论区,不调用任何模块的方式实现。

题目1:水仙花数

.版本 2.支持库 spec.子程序 题目1_水仙花数.局部变量 start, 整数型.局部变量 stop, 整数型.局部变量 i, 整数型, , , 100~999.局部变量 i1, 整数型.局部变量 i2, 整数型.局部变量 i3, 整数型start = 100stop = 1000.变量循环首 (start, stop - 1, 1, i)    ' i = 123  ' 假设    i1 = i \ 100  ' 取百位数字 123//100=1    i2 = i \ 10 % 10  ' 取十位数字 123//10=12  12%10=2    i3 = i % 10  ' 取个位数字 123%10=3    .如果真 (到整数 (求次方 (i1, 3)) + 到整数 (求次方 (i2, 3)) + 到整数 (求次方 (i3, 3)) = i)        调试输出 (到文本 (i) + “是水仙花数”)        ' 153是水仙花数        ' 370是水仙花数        ' 371是水仙花数        ' 407是水仙花数    .如果真结束.变量循环尾 ()

题目2:四叶玫瑰数

.版本 2.支持库 spec.子程序 题目2_四叶玫瑰数.局部变量 start, 整数型.局部变量 stop, 整数型.局部变量 i, 整数型, , , 1000~9999.局部变量 i1, 整数型.局部变量 i2, 整数型.局部变量 i3, 整数型.局部变量 i4, 整数型start = 1000stop = 10000.变量循环首 (start, stop - 1, 1, i)    ' i = 1234  ' 假设    i1 = i \ 1000  ' 取千位数字 1234//1000=1    i2 = i \ 100 % 10  ' 取百位数字 1234//100=12  12%10=2    i3 = i \ 10 % 10  ' 取十位数字 1234//10=123  123%10=3    i4 = i % 10  ' 取个位数字 1234%10=4    .如果真 (到整数 (求次方 (i1, 4)) + 到整数 (求次方 (i2, 4)) + 到整数 (求次方 (i3, 4)) + 到整数 (求次方 (i4, 4)) = i)        调试输出 (到文本 (i) + “是四叶玫瑰数”)        ' 1634是四叶玫瑰数        ' 8208是四叶玫瑰数        ' 9474是四叶玫瑰数    .如果真结束.变量循环尾 ()

题目3:逆序输出字符串

.版本 2.支持库 spec.子程序 题目3_逆序输出字符串.局部变量 str, 文本型, , , 只允许数字或字母.局部变量 len, 整数型, , , 不考虑中文,需特殊处理(1个汉字占2字节).局部变量 i, 整数型.局部变量 ret, 文本型标准输出 (#标准输出设备, “请输入字符串” + #换行符)str = 标准输入 ()' str = “123456”' str = “abcdefghijklmnopqrstuvwxyz”' str = “52pojie_OVVO”len = 取文本长度 (str).变量循环首 (len, 1, -1, i)    ret = ret + 取文本中间 (str, i, 1).变量循环尾 ()调试输出 (ret)

题目4:猜数字小游戏

.版本 2.支持库 spec.子程序 题目4_猜数字小游戏.局部变量 number, 整数型, , , 0~100都有可能.局部变量 i, 整数型.局部变量 choice, 整数型.局部变量 ok, 逻辑型置随机数种子 ()number = 取随机数 (0, 100)调试输出 (“嘘~这是随机数:” + 到文本 (number)).计次循环首 (10, i)    标准输出 (#标准输出设备, “请输入你要猜测的数字:” + #换行符)    choice = 到整数 (标准输入 ())    .如果 (choice > number)        调试输出 (“你猜大了”)    .否则        .如果 (choice < number)            调试输出 (“你猜小了”)        .否则            ok = 真            调试输出 (“你猜对了,真棒!”)            调试输出 (“你一共用了” + 到文本 (i) + “次机会”)            跳出循环 ()        .如果结束    .如果结束    调试输出 (“还剩” + 到文本 (10 - i) + “次机会”).计次循环尾 ().如果真 (ok = 假)    调试输出 (“游戏结束,你没有猜到”)

题目5:百鸡百钱

.版本 2.支持库 spec.子程序 题目5_百鸡百钱.局部变量 count, 整数型.局部变量 x, 整数型.局部变量 y, 整数型.局部变量 z, 整数型count = 0.变量循环首 (1, 20 - 1, 1, x)    .变量循环首 (1, 33 - 1, 1, y)        z = 100 - x - y        .如果真 (z > 0 且 5 × x + 3 × y + z ÷ 3 = 100)            count = count + 1            调试输出 (取重复文本 (60, “=”))            调试输出 (“第” + 到文本 (count) + “种买法,公鸡买了” + 到文本 (x) + “只,母鸡买了” + 到文本 (y) + “只,小鸡买了” + 到文本 (z) + “只”)            ' ============================================================            ' 第1种买法,公鸡买了4只,母鸡买了18只,小鸡买了78只            ' ============================================================            ' 第2种买法,公鸡买了8只,母鸡买了11只,小鸡买了81只            ' ============================================================            ' 第3种买法,公鸡买了12只,母鸡买了4只,小鸡买了84只        .如果真结束    .变量循环尾 ().变量循环尾 ()

题目6:闰年问题升级版

.版本 2.支持库 spec.子程序 题目6_闰年问题升级版.局部变量 year, 整数型.局部变量 month, 整数型.局部变量 day, 整数型.局部变量 date_list, 整数型, , "0".局部变量 count_day, 整数型.局部变量 i, 整数型标准输出 (#标准输出设备, “请输入年份” + #换行符)year = 到整数 (标准输入 ())标准输出 (#标准输出设备, “请输入月份” + #换行符)month = 到整数 (标准输入 ())标准输出 (#标准输出设备, “请输入日期” + #换行符)day = 到整数 (标准输入 ())' year = 2022' month = 10' day = 3date_list = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }count_day = day.如果 (year % 4 = 0 且 year % 100 ≠ 0 或 year % 400 = 0)    调试输出 (到文本 (year) + “年是闰年”)    date_list [2] = 29.否则    调试输出 (到文本 (year) + “年是平年”)    date_list [2] = 28.如果结束.计次循环首 (month - 1, i)    count_day = count_day + date_list [i].计次循环尾 ()调试输出 (到文本 (year) + “年” + 到文本 (month) + “月” + 到文本 (day) + “日是当年的第” + 到文本 (count_day) + “天”)' 2022年是平年' 2022年10月3日是当年的第276天

题目7:猴子吃桃问题

.版本 2.支持库 spec.子程序 题目7_猴子吃桃问题.局部变量 p, 整数型.局部变量 i, 整数型p = 1调试输出 (“第10天还剩下” + 到文本 (p) + “个桃子”).变量循环首 (9, 1, -1, i)    p = (p + 1) × 2    调试输出 (“第” + 到文本 (i) + “天还剩下” + 到文本 (p) + “个桃子”).变量循环尾 ()调试输出 (“第一天一共摘了” + 到文本 (p) + “个桃子”)' 第10天还剩下1个桃子' 第9天还剩下4个桃子' 第8天还剩下10个桃子' 第7天还剩下22个桃子' 第6天还剩下46个桃子' 第5天还剩下94个桃子' 第4天还剩下190个桃子' 第3天还剩下382个桃子' 第2天还剩下766个桃子' 第1天还剩下1534个桃子' 第一天一共摘了1534个桃子

题目8:冒泡排序

.版本 2.支持库 spec.子程序 题目8_冒泡排序.局部变量 pop_list, 整数型, , "0".局部变量 count, 整数型.局部变量 i, 整数型.局部变量 j, 整数型' pop_list = { 82, 15, 15, 41, 37, 31 }pop_list = { 29, 12, 19, 37, 14 }count = 取数组成员数 (pop_list)调试输出 (“没排序之前的列表”, pop_list).计次循环首 (count, i)    .计次循环首 (count - i, j)        .如果真 (pop_list [j] > pop_list [j + 1])            交换变量 (pop_list [j], pop_list [j + 1])        .如果真结束    .计次循环尾 ().计次循环尾 ()调试输出 (“排好序的列表为”, pop_list)' {15, 15, 31, 37, 41, 82}' {12, 14, 19, 29, 37}