# 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)