Preparatory Class-Day5----- 循环(几个小程序)

2024-05-12 11:38

本文主要是介绍Preparatory Class-Day5----- 循环(几个小程序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 1. 询问年龄,性别,如果是10-12岁的小女孩,则邀请加入足球队;询问10次,输出满足条件总人数
def que1():def judge_player(sex, age):if sex == '女'and 12 <= age <= 14:return True, ('--OK!     --欢迎加入足球队!!!')else:if sex == '男':return False, ('--Sorry!  只招女球员')if age < 12:return False, ('--Sorry!  再过{}年再来吧'.format(12 - age))if age > 12:return False, ('--Sorry!  只招14岁以下儿童')import randomsex_list = []age_list = []sex_dic = {0:'男', 1:'女'}for i in range(10):sex_list.append(sex_dic[random.randint(0,1)])age_list.append(random.randint(8, 18))result = []for interviewer in range(10):agei = age_list[interviewer]sexi = sex_list[interviewer]print(type(age_list[interviewer]))print('第{}位采访者,性别:【{}】,年龄【{}】 '.format(str(interviewer+1).zfill(2), sexi, str(agei).zfill(2))\+ judge_player(sexi, agei)[1])result.append(judge_player(sex_list[interviewer], age_list[interviewer])[0])print('\n满足条件的总人数为:{}'.format(result.count(True)))
# que1()# 2. 排序法
l = [6,96,8,9,15,85,2, 87, 1]
def que2():# 冒泡排序def bubbleSort(l):# 循环次数    ------------------------1,   len-1次for time in range(1, len(l)):# 对比点 = 总长度 - 循环次数  ------0,   len-time位置# print(time)for index in range(len(l)-time):if (l[index] > l[index + 1]):l[index], l[index+1] = l[index+1], l[index]# print('{}---{}---{}~~~~{}'.format(l, time, index, index+1))return l# 直接选择排序def selectSort(m):# time为比对基准元素位置,------------------         0 - len-1for time in range(len(l)-1):# 比对的起始点 = 基准点time + 1 -------    time+1 - lenfor index in range(time+1, len(l)):# print('{}---{}'.format(time, index))if (l[time] > l[index]):l[time], l[index] = l[index], l[time]# print(time, index)return  m# 插入排序----抽扑克牌def insertSort(m):result = []# 单个元素k插入列表lidef to_insert(li, k):# 标识符tab = False# 寻找插入位置# 循环次数应该至少大于列表长度+1,None也占一位(空列表),即认为扑克牌最末尾还有一张‘空牌’for i in range(len(li)+1):# 修改标识符,标志‘遍历完后的下一个循环’,即在和‘空牌’比较if i == (len(li)):tab = True# 如果在对li[-1]比较完成(包含)之前,且寻找到位置,即把扑克从左往右比较一遍if not tab and k < li[i]:li.insert(i, k)break# 如果遍历完成,多循环一次,即和‘空牌’不需要比较,直接把牌替换掉‘空牌’if tab:li.append(k)return  li# 遍历列表# result = result[:1]for length in range(len(m)):result = to_insert(result, m[length])# print(result,m[length])return  resultprint('插入排序:',insertSort(l))print('选择排序:',selectSort(l))print('冒泡排序:',bubbleSort(l))
que2()# 3.判断回文数
def que3():# 中间向两端判断def judge_palindrome1(to_judge):import mathlen_to = (len(to_judge) - 1)/2len_to_right = int(math.ceil(len_to + 0.5))  #向上取整)len_to_left = int(math.floor(len_to - 0.5)) #向下取整result = Truefor i in range(int(len_to_left)+1):# print(to_judge[len_to_left - i], to_judge[len_to_right + i])if to_judge[len_to_left - i] != to_judge[len_to_right + i]:result = Falsebreakreturn result# 两端向中间判断def judge_palindrome2(to_judge):mid = (len(to_judge)-1)/2result = Truefor gap in range(len(to_judge)):# print(gap, -1- gap, to_judge[gap], to_judge[-gap-1])if float(gap) > mid:breakelif to_judge[gap] != to_judge[-gap-1]:result = False# else:#     print(float(gap) > mid)return  resultto_judge = input('请输入需要判断的字符串:\n')print('从中间向两端判断方法,【{}】的回文数判定结果:{}'.format(to_judge, judge_palindrome2(to_judge)))print('从两端向中间判断方法,【{}】的回文数判定结果:{}'.format(to_judge, judge_palindrome2(to_judge)))
# que3()# 4.打印三角形
def que4():# 实心三角形def triangle_solid(num):for i in range(num):tab = Falsefor j in range(i+1):print('*',end='')if j == i:tab = Trueif tab:print('\n' ,end = '')# 空心三角形def hollow_solid(num):for i in range(num):tab = Falsefor j in range(i + 1):# 判断是否最后一行if i != num-1:# 循环完成,修改标识符if j == i :tab = True# 判断打印空格还是*if (i == j or j == 0):print('*',end='')else :print(' ',end='')# 最后一行,全部打印星号else:print('*', end='')if tab:print('\n', end='')num = int(input('你想打印几边形?请输入\n'))triangle_solid(num)print('\n')hollow_solid(num)
# que4()# 5.输出乘法表
def triangle_solid():print('九九乘法表如下:')def deal_str(s):if len(s) == 2:return selse:return ' ' + sfor line in range(0,9):tag = Falsefor index in range(0, 9):# print(line+1, index+1)# if index != line:#     print('\t\t', end='')if index >= line:result = deal_str(str((line+1)*(index+1)))print('{}×{} = {}'.format(line+1, index+1, result), end='\t')# print(line+1, '*',  +index+1, end='\t\t\t')else:print('\t\t\t', end='')if index == 8:tag = Trueif tag:print('\n')
# triangle_solid()# 6. 猜数字
def guess():import randomdef judge_num(num, num_random):if num > num_random:print('It\'s too big')return 1elif num < num_random:print('It\'s too small')return 1else:print("Congratulation!! That\' right!")return 0# 产生随机数num_start = int(input('Digital lower limit of guess number:\n'))num_end = int(input('Digital upper limit of guess number:\n'))num_random = random.randint(num_start, num_end)# 参数初始化result = 1      # 判断结果i = 0           # 当前循环次数frequency = 3   # 循环限制次数# 提示总猜测次数、剩余次数print('Notice: You have【{}】 chances you guess '.format(frequency), end = '--&&>>--')# print('【{}】 chances left now:\n'.format(frequency - i +1))while result and i != frequency:# 猜数字print('【{}】 chances left now:\n'.format(frequency - i))num = int(input('Please guess a int_number:\n'))result = judge_num(num, num_random)i += 1print('Game Over')
# guess()
"D:\Preparatory class\Workspace\venv\Scripts\python.exe" "D:/Preparatory class/Workspace/Day5/作业.py"
<class 'int'>
第01位采访者,性别:【女】,年龄【15】 --Sorry!  只招14岁以下儿童
<class 'int'>
第02位采访者,性别:【女】,年龄【16】 --Sorry!  只招14岁以下儿童
<class 'int'>
第03位采访者,性别:【女】,年龄【15】 --Sorry!  只招14岁以下儿童
<class 'int'>
第04位采访者,性别:【女】,年龄【18】 --Sorry!  只招14岁以下儿童
<class 'int'>
第05位采访者,性别:【男】,年龄【09】 --Sorry!  只招女球员
<class 'int'>
第06位采访者,性别:【女】,年龄【08】 --Sorry!  再过4年再来吧
<class 'int'>
第07位采访者,性别:【男】,年龄【13】 --Sorry!  只招女球员
<class 'int'>
第08位采访者,性别:【男】,年龄【18】 --Sorry!  只招女球员
<class 'int'>
第09位采访者,性别:【男】,年龄【12】 --Sorry!  只招女球员
<class 'int'>
第10位采访者,性别:【男】,年龄【08】 --Sorry!  只招女球员满足条件的总人数为:0
插入排序: [1, 2, 6, 8, 9, 15, 85, 87, 96]
选择排序: [1, 2, 6, 8, 9, 15, 85, 87, 96]
冒泡排序: [1, 2, 6, 8, 9, 15, 85, 87, 96]
请输入需要判断的字符串:
1234rtytyt4321
从中间向两端判断方法,【1234rtytyt4321】的回文数判定结果:False
从两端向中间判断方法,【1234rtytyt4321】的回文数判定结果:False
你想打印几边形?请输入
10
*
**
***
****
*****
******
*******
********
*********
***********
**
* *
*  *
*   *
*    *
*     *
*      *
*       *
**********
九九乘法表如下:
1×1 =  1     1×2 =  2	1×3 =  3	1×4 =  4	1×5 =  5	1×6 =  6	1×7 =  7	1×8 =  8	1×9 =  9	2×2 =  4	2×3 =  6	2×4 =  8	2×5 = 10	2×6 = 12	2×7 = 14	2×8 = 16	2×9 = 18	3×3 =  9	3×4 = 12	3×5 = 15	3×6 = 18	3×7 = 21	3×8 = 24	3×9 = 27	4×4 = 16	4×5 = 20	4×6 = 24	4×7 = 28	4×8 = 32	4×9 = 36	5×5 = 25	5×6 = 30	5×7 = 35	5×8 = 40	5×9 = 45	6×6 = 36	6×7 = 42	6×8 = 48	6×9 = 54	7×7 = 49	7×8 = 56	7×9 = 63	8×8 = 64	8×9 = 72	9×9 = 81	Digital lower limit of guess number:
1
Digital upper limit of guess number:
10
Notice: You have【3】 chances you guess --&&>>--【3】 chances left now:Please guess a int_number:
5
It's too big
【2】 chances left now:Please guess a int_number:
3
Congratulation!! That' right!
Game OverProcess finished with exit code 0


这篇关于Preparatory Class-Day5----- 循环(几个小程序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982528

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(