如何使用if语句统计总数及用嵌套循环找出跨课程选课学生
没问题,我来一步步帮你解决这两个问题:
要实现总数统计,核心思路是初始化一个计数器变量,然后遍历目标数据集,用if语句判断元素是否符合你要统计的条件,每满足一次就把计数器加1。
举个简单的Python示例,比如统计列表中大于10的数字数量:
numbers = [5, 12, 8, 15, 3, 20] count = 0 for num in numbers: # 用if判断是否符合统计条件 if num > 10: count += 1 print(f"大于10的数字总数是: {count}")
这里count就是我们的计数器,每次if条件成立(数字>10),就给count加1,最后输出总数。
假设我们有两个列表,分别存储两门课程的学生名单,比如cs_class(计算机科学课)和math_class(数学课)。我们可以用嵌套循环遍历两个列表,判断同一个学生是否同时出现在两个列表里,同时记录符合条件的学生并统计总数。
代码示例如下:
# 假设的两门课程学生列表 cs_class = ["Audrey", "Ben", "Julia", "Paul", "Sue", "Mark", "Lily"] math_class = ["Audrey", "Ben", "Julia", "Paul", "Sue", "Mark", "Tom"] common_students_count = 0 # 嵌套循环:遍历计算机课的每个学生 for cs_student in cs_class: # 内层循环遍历数学课的每个学生 for math_student in math_class: # 判断是否是同一个学生(同时选修两门课) if cs_student == math_student: print(f"Student: {cs_student} is enrolled in both classes") common_students_count += 1 # 找到匹配后跳出内层循环,避免重复统计 break print(f"{common_students_count} students are enrolled in both Computer Science and Math")
运行这段代码后,输出就会和你给出的示例一致:
Student: Audrey is enrolled in both classes
Student: Ben is enrolled in both classes
Student: Julia is enrolled in both classes
Student: Paul is enrolled in both classes
Student: Sue is enrolled in both classes
Student: Mark is enrolled in both classes
6 students are enrolled in both Computer Science and Math
补充一句:实际开发中用集合的交集操作会更高效,但既然要求用嵌套循环,上面的代码完全符合需求。
内容的提问来源于stack exchange,提问作者Sammy




