python 循环高级写法_python_005_while循环,列表的高级操作,生成器的概念,字典...

while循环:

while循环:适用于明确知道循环结束的条件但是不知道循环次数

语法:

while 循环条件判断:

循环语句

while循环可以提到for-in遍历,但是for-in遍历不能替代while循环

"""

"""

while循环可以替代for-in遍历

"""

#使用循环完成1-100的所有整数之和

sum = 0

for i in range(1,101):

sum += i

print(sum)

# while循环

sum = 0

index = 1

while index < 101:

sum += index

index += 1

print(sum)

"""

for-in遍历无法取代while循环

"""

#控制台分别输入两个整数,求两个整数的最大公约数(使用辗转相除法

num1 = int(input('请输入一个整数'))

num2 = int(input('请输入另一个整数'))

max_num = max(num1, num2)

min_num = min(num1, num2)

# 使用辗转相除法求最大公约数

while max_num % min_num != 0:

tmp = max_num % min_num

max_num = min_num

min_num = tmp

print('最大公约数为%d'% min_num)

"""

break和continue

可以用来完成循环终止操作

break--终止本层循环

continue--终止本次循环

注意:当循环执行过程中遇到continue或break时,不管后面是否还存在循环代码,本次(本层)循环后面代码不再执行

"""

#求101-200之间所有素数

for i in range(101, 201):

# 用来存储当前数字i是否是素数,默认为素数

result = True

for j in range(2, i):

if i % j == 0:

result = False

break

if result:

print("%d是素数"% i)

"""

列表的高级操作

"""

#定义一个列表存储[1,10]对应整数的立方值list1 = [1,8,27,64,125, ....]

list1 = [i**3 for i in range(1, 11)]

print(list1)

生成器

list1 = (i**3 for i in range(1, 11))

#推到一个数据

"""

生成器作用:可以根据提前定义好的生成规则,完成数据的动态推断,这样做一方面根据用户需求动态推倒数据,节省计算机内存,另一方面根据用户需求每一次只推断一个,这样可以保证计算机运行效率

"""

# print(next(list1))

# print(next(list1))

#使用for-in遍历

count = 0

for i in list1:

count += 1

if count > 5:

break

print(i)

字典

"""

{key1:value1, key2:value2...}--字典通过键值对完成数据的存取操作

注意:同一个字典中同一个key只能出现依次,而且每一个key只能对应一个值

"""

infor = {'name':'张三', 'sex':'男', 'age':20}

#获取字典中数据get(key)--字典内置操作,用来获取字典中对应key的value值,如果key不存在,此时返回None(空)

print(infor.get('name1'))

#修改字典中对应的键值对,在更新字典中数据时,如果对应的键不存在,此时等价于添加一个新的键值对,但是如果存在对应的键,此时会更新该键值对对应的数据

infor['name1'] = '李四'

print(infor)

#获取字典中所有的键

keys = list(infor.keys())

# 判断列表中是否含有指定元素

if 'name' in keys:

print('列表中含有该键')

else:

print('列表中不含有该键')

#删除字典中对应的键值对

infor.pop('name')

print(infor)

#遍历字典中数据

for key, value in infor.items():

print(key, value)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值