# while 循环 # 格式: # 打印100遍hello,python # 限定:100次--条件:结束的条件 # 1.2.3.4.5.6.7............100 # # 一旦用了while循环,那就一定需要考虑让条件不成立的场景 # 代表次数 count = 1 while count < 101: # 条件满足才会执行的代码 print('hello,python') # 非常重要,一定要有个操作,在某些时候能够使条件不成立! count += 1 # while循环不会指定循环次数 count = 1 nums = input('输入次数:') # 输入的次数 while count <= int(nums): # 限定的次数 print(count) count += 1 # 条件满足才会执行的代码 print('hello,python') # 避免死循环: # 1.是循环条件不成立 # 2.在循环中,达到其他条件,退出循环 # # 死循环的处理:break/continue # break : 条件满足终止当前循环 count = 1 nums = input('输入次数:') # 输入的次数 while count <= 100: # 限定的次数 print(count) print('hello,python') # 在循环内部,如果还有其他条件,如果满足的化,直接退出循环 if count ==50: print('已经50次了,再见') break # 直接退出循环 count += 1 # 条件满足才会执行的代码 # # continue:中止当前本轮的循环,开启下一轮循环 count = 1 # nums = input('输入次数:') # 输入的次数 while count <= 10: # 限定的次数 print(count) count += 1 # 条件满足才会执行的代码 if count == 2: continue # 跳过当前循环,进入下一个循环 print('hello,python') # 在循环内部,如果还有其他条件,如果满足的化,直接退出循环 # if count ==5: # print('已经50次了,再见') # break # 直接退出循环 # # # break和continue的区别:辞职(break)和请假(continue)的区别 # print(*************************--*******************************************) # 重点掌握:for循环 # for循环 # 遍历:从头到尾,每一个成员访问一遍。 # 成员:列表和字典--最常用的 # 列表的遍历 list_p = ['mr 张','换你','madao','吴亦凡','罗志'] ''' 格式: for 变量 in 列表: 得到一个成员时,都回去执行的代码 在这个列表中,去取每一个成员,赋值给变量 变量 = 第一个成员 变量 = 第二个成员 变量 = 第三个成员 变量 = 第四个成员 循环的次数=列表的长度 ''' # 遍历列表的值 for item in list_p: # 获取所有的列表的值 print(item) # 打印每一个成员 if item == '吴亦凡': # 如果获取到指定的值 break # 就终止循环 for item in list_p: # 获取所有的列表的值 if item == '吴亦凡': # 如果获取到指定的值 continue # 不会打印这一行的值,跳过进入下一轮 print(item) # 打印每一个成员 # 通过列表的索引来遍历: # range:内置函数,功能:生产整数字序,有三种类型: # 起点:默认是0, # 终点:自定 # 步长:默认是1 # 含起始,不含终点 # 1.range(n):默认生成一个0到n-1的整数序列 # range(5)[0,1,2,3,4] # 2.range(n,m):默认生成一个0到m-1的整数序列 # range(1,5)[1,2,3,4] # 3.range(n,m,k):相比如其他函数的for循环。n表示初始值,m表示结束值,k表示步长。 # 会生成一个初始值为n,结束值为m,递减或递增的整数序列 # range(1,10,2)[1,3,5,7,9] # 遍历列表的索引 # 获取列表的长度为:6 # 要遍历的索引为:0.1.2.3.4.5 for index in range(len(list_p)): print(index) # 打印下标 print(list_p[index]) # 打印值 # 字典的遍历 person_info = {'sex':'男','tzh':'好看,帅,有钱入','age':30} # 第一种通过遍历键名: for key in person_info.keys(): print(key) print(person_info[key]) # 第二种通过遍历键值对: for key,value in person_info.items(): print(key,value) # 双重for循环 # 1.想清楚,外层是什么,内层是什么 # 2.在编写双重for # 3.根据输出内容,调整语句逻辑 ''' 输出一下图形 1 1 2 1 2 3 1 2 3 4 第一行:输出1 range(1,2) 行数+1 第二行:输出1,2 range(1,3) 第三行:输出1,2,3 range(1,4) 第四行:输出1,2,3,4 range(1,5) ''' for index in range(1,5): print('第{}行:'.format(index)) for sub in range(1,index+1): print(sub,end=' ') # end='' 不换行的意思 print('') # 课后作业 # 1、一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣, # # 如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣(%10或20%)和最终价格。 print('第一题************************************************') price = int(input('这件商品的价格是:')) # 输入有个价格 if 50 <= price <= 100: # 条件1是购买金额50-100元(包含50元和100元)之间 price = 0.9 * price # 折旧后的价格 # print('这边可以给你打10%的折扣,给你打完折扣价是:',price,'谢谢惠顾!') # 输出满足条件1的 第一种方法 print('这边可以给你打10%的折扣,给你打完折扣价是:{:.2f}'.format(price)) # 第二种方法 elif price > 100: price = 0.8 * price # print('这边可以给你打20%的折扣,给你打完折扣价是:',price,'谢谢惠顾!' ) # 输出满足条件2的 第一种方法 print('这边可以给你打20%的折扣,给你打完折扣价是:{:.2f}'.format(price)) # 第二种方法 else: print('你不满足折扣的价格,请继续购买哈!') # 不满足条件1执行的条件 # 2 判断是否为闰年 # 提示: # 输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况) # 如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年” # 什么是闰年,请自行了解(需求文档没有解释) # # 请输入一个年份 # 条件1:不能够被100整除且能够被4整除 # 条件2:够被100整除且能够被400整除 print('第二题************************************************') year = int(input('请输入一个年份:')) # 输入一个整数的年份 if (year % 100 != 0 and year % 4 == 0) or (year % 100 == 0 and year % 400 == 0): # 条件1和条件2 print('你输入的' + str(year) + '是闰年') # 能够被满足则是输出这个 else: # 反之 print('你输入的' + str(year) + '不是闰年') # 不能够被满足则是输出这个 # 3.求三个整数中的最大值 # 提示:定义 3 个变量 print('第三题************************************************') numb1 = input('请输入第一个数:') # 输入第一个变量 numb2 = input('请输入第二个数:') # 输入第二个变量 numb3 = input('请输入第三个数:') # 输入第三个变量 max = 0 # 假设最大值max为0 if numb1 > numb2: # 先进2个数值得比较 max = numb1 # 最大值为numb1 else: # 反之 max = numb2 # 最大值为numb2 if max > numb3: # 比较max与剩余的值进行比较 print('最大值为'+ str(max)) # 最大值为max则打印这个 else: # 反之 print('最大值为' + str(numb3)) # 最大值为numb3则打印这个 # 4, 使用for打印九九乘法表 # 提示:输出九九乘法表,格式如下:(每项数据之间空一个Tab键,可以使用"\t") print('第四题**********************************************') for index in range(1,10): # 取值范围为(1-9) for numb in range(1,index+1): # 每次循环需要加1 print('{}*{} = {}\t'.format(index, numb, index*numb),end = ' ') # 使用format函数来输出 print('') # 进阶作业 ''' 使用循环完成剪刀石头布游戏,提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3)/退出(4) 电脑随机出拳比较胜负,显示用户胜、负还是平局。运行如下图所示: 提示:电脑随机出拳 使用随机数,首先需要导入随机数的模块 —— “工具包” import random 导入模块后,可以直接在 模块名称 后面敲一个"."然后按 Tab键,会提示该模块中包含的所有函数 random.randint(a, b),返回[a, b]之间的整数,包含a和b ''' print('第一题*********************************************************************************************') import random # 导入随机数的模块 while True: player = int(input('请你输入你要的选项 石头(1)/剪刀(2)/布(3)/退出(4):')) # 输入选择的选项 if player == 4: # 如果玩家输入4 ,满足条件,执行这个 print('游戏退出') break # 退出当前循环 computer = random.randint(1,3) # 电脑随机在1-3之间选择 if ((player == 3 and computer == 1) # 如果玩家出布(3)和电脑出石头(1) 玩家胜利 or (player == 1 and computer == 2) # 如果玩家出石头(1)和电脑出剪刀(2) 玩家胜利 or (player == 2 and computer == 3)): # 如果玩家出剪刀(2)和电脑出布(3) 玩家胜利 print('玩家选择的出拳是{},电脑出拳的{},玩家胜利!'.format(player, computer)) # 使用format函数打印出玩家胜利 elif player == computer: # 如果玩家和电脑出的一样,则是平局 print('玩家选择的出拳是{},电脑出拳的{},打成平局了!'.format(player, computer)) # 使用format函数打印出平局 else: # 反之 print('玩家选择的出拳是{},电脑出拳的{},玩家失败了!'.format(player, computer)) # 使用format函数打印出玩家失败了 print('游戏结束') # 2、编写如下程序 # a.用户输入1-7七个数字,分别代表周一到周日 # b.如果输入1~5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末” # c.如果输入0,退出循环 # d.输入其他内容,提示:“输入有误,请重新输入!” # 提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。 print('第2题*********************************************************************************************') my_days = ["周一", "周二", "周三", "周四", "周五", "周六", "周末"] # 定义一个列表 while True: num = input("请输入0~7范围内的数字:") # 输入数字 if num in list("1234567"): # 如果输入的值在列表当中,满足条件1,执行下一步 print("今天是{}!".format(my_days[int(num)-1])) # 使用format函数 elif num == "0": # 输入的值等于0,满足条件2 print("程序退出!") # 打印 break # 退出当前循环 else: # 反之,输入不属于0-7范围的数字,执行条件3 print("输入有误,请重新输入!") # 打印 # 3、冒泡排序(不要求提交,面试之前背熟) # 使用循环实现排序算法(冒泡,选择等算法选择一个,请自行了解。) # 提示:利用for循环,完成a=[1,7,4,89,34,2]的排序(小的数字排前面,大的排后面),不能使用sort、sorted等内置函数或方法 a =[1,7,4,89,34,2] for k in range(1,len(a)): for m in range(0,len(a)-k): if a[m] > a[m+1]: a[m],a[m+1] = a[m+1],a[m] print(a)