当前位置: 首页 > news >正文

python21-循环小作业

课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

循环语句小作业

  • for-in作业
    • 斐波那契 for
  • 固定数值计算
  • 素数
  • 字符统计
  • 数字序列
    • range 函数
  • 水仙花数
  • 循环嵌套
  • 冒泡排序
  • 选择排序
  • 数字组合
  • 循环跳转 for else
  • 猜数字
  • 字典实现(解析字典)
  • 非固定数值计算
  • 回文数
  • 实践是检验真理的唯一标准


for-in作业

斐波那契 for

作业要求:编写一个Python程序,使用for循环,生成并输出斐波那契数列的前n项,其中n是用户指定的正整数。斐波那契数列,又称黄金分割数列,指的是:1、1、2、3、5、8、13、21、34…从第三个数开始,每个数字都是前两个数字之和。

# 用户输入
n = int(input("请输入正整数 n:"))# 初始化斐波那契数列
fibs = [1, 1]# 生成数列
for i in range(2, n):next_num = fibs[i - 1] + fibs[i - 2]fibs.append(next_num)# 输出结果
print(f"斐波那契数列的前 {n} 项为:{fibs}")

固定数值计算

作业要求:对数字列表中数字的求和,求平均值,求最值,求最小值

def case_2():nums = [12,34,3,6,56,33434,6,3,23,23,23,57,78,11,1,8,9]sum = 0avg = Nonemax_num = nums[0]min_num = nums[0]for n in nums:sum += nif n > max_num:max_num = nif n < min_num:min_num = nprint("SUM:", sum)avg = sum / len(nums)print("AVG:", avg)print("MAX:", max_num)print("MIN:", min_num)

素数

作业要求:编写一个Python程序,输入一个正整数,判断这个数是否为素数(质数)。素数是指只能被1和它本身整除的正整数。

import math# 用户输入正整数
num = int(input("请输入一个正整数:"))# 判断是否为素数
def is_prime(n):if n <= 1:return False  for i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return False  return True  # 输出结果
if is_prime(num):print(f"{num} 是素数")
else:print(f"{num} 不是素数")

字符统计

作业要求
从键盘输入一个字符序列,统计,大写字母,小写字母,数字,其它字符各出现次数,将次数保存到字典中。

def func2():data = input("请输入数据:")count = {"DX":0,"XX":0,"SZ":0,"QT":0}data  = list(data)print(data)for c in data:if c >= '0' and c <= '9':count["SZ"] += 1elif c >= 'A' and c <= 'Z':count["DX"] += 1elif c >= 'a' and c <= 'z':count["XX"] += 1else:count["QT"] += 1print(count)

数字序列

range 函数

range() 函数是一个用于生成整数序列的内置函数,通过指定起始值、停止值和步长,它能够生成一个按照指定规则递增或递减的整数序列。
for-in 结合 range 函数实现计次循环

result = 0
for i in range(1, 101):result += iprint(result)

Python 中 ,可以使用 random 模块中的 randint() 函数获取随机数。

from random import randint
print(randint(1, 3))

小tips:

from random import randintplay = int(input("请输入一个1-6之间的数字:"))
bot = randint(1, 6)if play == bot:print("点数相同,平局")
elif play > bot:print(f"玩家{play}点,电脑{bot}点,玩家胜")
else:print(f"玩家{play}点,电脑{bot}点,电脑胜")

水仙花数

作业要求:编写一个 Python 程序,找出100-999范围内的水仙花数。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

for n in range(100, 1000):# 获取百位数i = n // 100   # 获取十位数j = n // 10 % 10  # 获取个位数k = n % 10  # 判断是否为水仙花数if n == i**3 + j**3 + k**3:  # 输出水仙花数print(n) 

循环嵌套

循环嵌套特征

  • 循环嵌套不局限于某种循环形式,可任意相互嵌套
  • 外层循环循环一次,内层循环循环一轮
    使用 for-in 循环遍历二维列表
data = [[1,2,3,4,5,6,7,8,9],["A","B","C","D","E"],["Hello","World","Python","Hogwarts"]
]
for item in data:for el in item:print(el)

使用 while 循环遍历二维列表

data = [[1,2,3,4,5,6,7,8,9],["A","B","C","D","E"],["Hello","World","Python","Hogwarts"]
]
l1 = len(data)
i = 0
while i < l1:item = data[i]l2 = len(item)j = 0while(j < l2):el = item[j]print(el)j += 1i += 1

冒泡排序

def bubbleSort(obj, key=None, reverse=False):length = len(obj)# 外层循环用来确定找出剩余数据的最大值,N个数,找n-1次即可for i in range(length-1):for j in range(length-i-1):if key:  # if key != None:if key(obj[j]) > key(obj[j + 1]):obj[j], obj[j + 1] = obj[j + 1], obj[j]else:if obj[j] > obj[j+1]:obj[j], obj[j+1] = obj[j+1], obj[j]# return obj if not reverse else obj[::-1]if reverse:return obj[::-1]else:return obj

选择排序

def xuanze():data = [1,56,6,5,4,89,2]length = len(data)for i in range(length-1):small = data[i]for j in range(i+1,length):if data[j]<small:idx = jdata[idx],data[i] = data[i],data[idx]return dataresult = xuanze()
print(result)

数字组合

**for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):# 条件判断排除重复数字的排列if (i != k) and (i != j) and (j != k):print(i, j, k)
**

循环跳转 for else

names = ["tom","jack","rose","tony"]inName = input("请输入要查找的姓名:")# 不使用 else 形式
flag = False
for name in names:if name == inName:print("找到了")flag = Truebreak
if not flag:print("没找到")# 使用 else 形式
for name in names:if name == inName:print("找到了")break
else:print("没找到")

猜数字

import random# 生成目标数字
target_number = random.randint(1, 100)# 初始化猜测次数
guess_count = 0while True:# 接收玩家输入guess = int(input("请输入你的猜测数字:"))# 增加猜测次数guess_count += 1# 判断猜测结果if guess == target_number:print(f"恭喜你猜对了!目标数字是 {target_number},你共猜了 {guess_count} 次。")breakelif guess < target_number:print("猜小了,请继续猜测。")else:print("猜大了,请继续猜测。")

字典实现(解析字典)

def func3():txt = '''#aTrans:art. 一;字母A#a.m.Trans:n. 上午#a/cTrans:n. 往来帐户@往来:come - and - go; contact; intercourse@n. 往来帐户#aardvarkTrans:n. 土猪#aardwolfTrans:n. 土狼#aasvogelTrans:n. 秃鹰之一种#abaciTrans:n. 算盘#abackTrans:ad. 向后地;朝后地#abacusTrans:n. 算盘#abaftTrans:ad. 向船尾@prep. 在...后#abaloneTrans:n. 鲍鱼#abandonTrans:vt. 放弃;沉溺@n. 放任#abandonedTrans:a. 被抛弃的;自弃的;自甘堕落的#abandoneeTrans:n. 被遗弃者;被委付者#abandonerTrans:n. 遗弃者;委付者#abandonmentTrans:n. 放弃;自暴自弃;放纵#abasTrans:vt. 打倒#abaseTrans:vt. 降低...的地位;降低...的品格;贬抑#abasementTrans:n. 贬抑;屈辱;谦卑#abashTrans:vt. 使...羞愧;使困窘#abashmentTrans:n. 羞愧;#abateTrans:vt. 缓和;减弱;减少;废除@vi. 缓和;减弱;减少#abatementTrans:n. 减少;减轻;缓和#abatisTrans:n. 鹿柴;拒木;铁丝网#abatmentTrans:n. 消除,减除#abbTrans:n. 横丝;纬;羊毛#abbacyTrans:n. 大修道院院长之职位;管区;任期#abbatialTrans:a. 大修道院的;大修道院长的;女大修道院长的#abbeTrans:n. 大修道院院长;僧侣;神父#abbessTrans:n. 女修道院院长;女庵主持#abbeyTrans:n. 修道院#abbotTrans:n. 修道院院长;方丈;住持#abbreviateTrans:vt. 缩写;使...简略;缩短#abbreviationTrans:n. 缩写#abbreviatorTrans:n. 缩写者#abcTrans:n. 基础知识;美国广播公司;澳大利亚广播公司#abcoulombTrans:n. 绝对库伦#abdicateTrans:vt. 放弃@vi. 逊位#abdicationTrans:n. 逊位;弃权;辞职#abdicatorTrans:n. 放弃者;让位者#abdomenTrans:n. 腹部#abdominalTrans:a. 腹部的;腹式呼吸;开腹手术#abductTrans:vt. 诱拐;绑走#abductionTrans:n. 诱拐#abductorTrans:n. 诱拐者#abeTrans:n. 亚伯;Abraham 的昵称#abeamTrans:ad. 与船的龙骨成直角#abecedarianTrans:n. 初学者@a. 字母的;初步的#abedTrans:ad. 在床上#abelmoskTrans:n. 秋葵#aberranceTrans:n. 脱离正道;越轨;脱离常轨#aberrantTrans:a. 脱离正道的;脱离常轨的;变体的#aberrationTrans:n. 越轨;光行差;心理失常;色差#abestrineTrans:adj. 石棉的#abetTrans:vt. 教唆;帮助'''data = txt.split("\n    #")myDict = {}for item in data:# 处理第一个单词字符串if item.startswith("#"):item = item[1:]# 拆分单词项k, w = item.split("\n    Trans:")myDict[k] = winw = input("请输入一个单词:")if  inw in myDict:trans = myDict[inw]print(trans)else:print("输入的单词不存在")

非固定数值计算

def case_3():sum = 0avg = Nonenum = 0max_num = Nonemin_num = Nonewhile True:flag = Falsen = input("请输入数字:")print(type(n))if n == "bye":breakelse:if n.startswith("-"): # -123123n = n[1:] # 123123flag = Trueif n.isdigit():n = int(n)if flag == True:n *= -1num += 1sum += nif max_num == None:max_num = nelif max_num < n:max_num = nif min_num == None:min_num = nelif max_num > n:min_num = n

回文数

作业要求:编写一个Python程序,输入一个5位数,判断输入的这个数字是否为回文数。回文数是指从左到右和从右到左读都一样的数。例如12321。如果输入的是回文数,输出是回文数,否则输出不是回文数。(使用循环进行实现)

a = int(input("请输入一个数字:\n"))
x = str(a)
flag = True# 遍历字符串的一半字符
for i in range(len(x) // 2):if x[i] != x[-i - 1]:# 如果字符不相同,将标志变量设为False 并退出循环flag = Falsebreakif flag:print(f"{a} 是一个回文数!")
else:print(f"{a} 不是一个回文数!")

在这里插入图片描述

实践是检验真理的唯一标准

相关文章:

  • YOLOv8环境安装(超细全过程)
  • LeetCode -- Flora -- edit 2025-04-25
  • C++入侵检测与网络攻防之暴力破解
  • 项目笔记1:通用 Service的常见方法
  • 通讯录完善版本(详细讲解+源码)
  • 什么是财务管理系统?一文看清其功能及作用!
  • 【AI落地应用实战】借助 Amazon Q 实现内容分发网络(CDN)CDK 构建的全流程实践
  • 腾讯一面面经:总结一下
  • 玉米产量遥感估产系统的开发实践(持续迭代与更新)
  • 《人月神话》50周年遇到AI-那些乐趣和苦恼(01-03)
  • CF-Hero:自动绕过CDN找真实ip地址
  • 计算机组成原理第二章 数据的表示和运算——2.1数制与编码
  • 当智驾成标配,车企暗战升级|2025上海车展
  • 软件技术专业
  • 云服务器和独立服务器的区别在哪
  • 问答页面支持拖拽和复制粘贴文件,MaxKB企业级AI助手v1.10.6 LTS版本发布
  • 算能BM1684升级为BM1688: tpu_mlir转换模型_SDK更新_代码修改_问题排查_代码调试
  • 【MySQL】3分钟解决MySQL深度分页问题
  • 一种专用车辆智能配电模块的设计解析:技术革新与未来展望
  • C#并行编程极大提升集合处理速度,再也没人敢说你程序性能差了!
  • 南国置业:控股股东电建地产拟受让公司持有的房地产开发业务等相关资产和负债
  • 网络达人“拿”别人的视频为自己带货赚佣金,法院判决赔偿1.4万元
  • 美银证券前董事总经理胡霁光履新,任摩根士丹利中国区副主席
  • 专访|攸佳宁:手机只是矛盾导火索,重要的是看见孩子的内心
  • 现场观察·国防部记者会|美将举行大演习“应对中国”,备战太平洋引发关注
  • 孙燕姿演唱会本周末开唱,小票根如何在上海释放大活力