Python学习笔记2——循环

1、条件表达式

sum_a = int(input("请输入第一个整数:"))
sum_b = int(input("请输入第二个整数:"))
print("使用条件表达式进入比较")
print( str(sum_a)+'等于小于'+str(sum_b) if sum_a<=sum_b else str(sum_a)+'大于'+str(sum_b))
#这里相当于使用了一个倒装句 print( 啥啥啥,如果的话;否则,啥啥啥)

这里相当于使用了一个倒装句 print( 啥啥啥,如果的话;否则,啥啥啥)
if条件判断如果是为True,则执行左侧的内容;如果为False,则执行右侧的内容
用这个语句可以简化程序

输出结果:
请输入第一个整数:45
请输入第二个整数:78
使用条件表达式进入比较
45等于小于78

2、pass语句(什么都不做,只是一个占位符,用到需要写语句的地方)

answer = input("您是会员吗?y/n")
if answer == 'y':
    pass
else:
    pass

如果没有想好写什么,可以用pass语句占着位置,不会报错

3、布尔值
以下对象的布尔值为False:
·False
·数值0
·None
·空字符串
·空列表
·空元组
·空字典
·空集合

print(bool(""))
print(bool(''))
print(bool([]))
print(bool(list()))   #空列表
print(bool(()))       #空元组
print(bool(tuple()))  #空元组
print(bool({}))   #空字典
print(bool(dict()))   #空字典
print(bool(set()))   #空集合
#以上对象的布尔值均为False
#其他对象的布尔值均为True,如:
print(bool("helloworld"))

4、range()函数
用于生成一个整数序列
创建range对象的三种创建方式
第一种创建方式:range(stop)

r = range(10)    #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]默认从0开始,默认相差1
print(r)     #range(0,10)
print(list(r))  #list用于查看range对象中的整数序列    list是列表的意思

输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

第二种创建方式:range(start,stop)

r = range(1,10)  #指定了起始值,从1开始,到10结束(不包含10),默认步长为1
print(list(r))

输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

第三种创建方式:range(start,stop,step)

r = range(1,10,2)  #指定了起始值,结束值,以及步长
print(list(r))

输出结果:
[1, 3, 5, 7, 9]

判断指定参数在range中是否存在

print(10 in r)
print(9 in r)
print(10 not in r)
print(9 not in r)

输出结果:
False
True
True
False

使用range的好处:不管表示的序列有多长,所有range对象所占用的内存空间都是一样的,都是start,stop,step,只有当用到range对象时,才会去计算序列中的相关元素

5、while和for-in循环

#如果在循环体中不需要使用自定义变量,那么可以用下划线代替
for _ in range(5):
    print("人生苦短,我用python.")
for item in 'python':
    print(item)
    
#计算1-100之间的偶数和
sum = 0
for i in range(1,101):
    if not bool(i%2):  #可以这样写
        sum += i
print(sum)

#输出100-999之间的水仙花数
for item in range(100,1000):
    if (item%10)**3+(item//10%10)**3+(item//100)**3 == item:    
    #注意:在python中,整除是// 双斜杠
        print(item)

目前学的可迭代对象有:range产生的整数序列和字符串

6、break和continue

break:直接退出循环结构

"""从键盘中录入密码,最多录入3次,如果正确就结束循环"""
for item in range(3):
    pwd = input("请输入密码:")
    if pwd == '8888':
        print("密码正确!")
        break
    else:
        print("密码错误!请重新输入")

a = 0
while a<3:
    pwd = input("请输入密码:")
    if pwd == '8888':
        print("密码正确!")
        break
    else:
        print("密码错误!请重新输入")
    a += 1

输出结果:
请输入密码:6542
密码错误!请重新输入
请输入密码:8888
密码正确!
请输入密码:5645
密码错误!请重新输入
请输入密码:654
密码错误!请重新输入
请输入密码:8888
密码正确!

continue:结束当前循环,进入下一次循环

#输出1-50之间所有5的倍数
#法一:
for item in range(1,51):
    if item%5 == 0:
        print(item)

#法二:用continue
for item in range(1,51):
    if item%5 != 0:
        continue
    print(item)

7、else与while、for的使用

对于与while、for配对的else,没有碰到break时执行else;所有循环次数都执行完了,就执行else的

#for-else
for item in range(3):
    pwd = input("请输入密码:")
    if pwd == '8888':
        print("密码正确!")
        break
    else:
        print("密码错误!请重新输入")
else:
    print("对不起,三次密码均输入错误!")

输出结果1:
请输入密码:8888
密码正确!

输出结果2:
请输入密码:544
密码错误!请重新输入
请输入密码:321
密码错误!请重新输入
请输入密码:31
密码错误!请重新输入
对不起,三次密码均输入错误!

#while-else
a = 0
while a<3:
    pwd = input("请输入密码:")
    if pwd == '8888':
        print('密码正确!')
        break
    else:
        print("密码错误!请重新输入")
    a += 1
else:
    print("对不起,三次密码均输入错误!")

8、嵌套循环

"""输出一个三行四列的矩阵"""
for i in range(1,4):    #外层控制行数,内层控制打印的列数
    for j in range(1,5):
        print("*",end='\t')   #不换行
    print()   #换行

输出结果:




#九九乘法表
#a = 0
for i in range(1,10):
    #a += 1
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j,end='\t')    # i+"*"+j+'='+i*j 不能这样写
    print()

输出结果:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

9、二重循环中的break和continue
二重循环中的break和continue用于控制本层循环

#break
for i in range(5):
    for j in range(1,11):
        if j%2 == 0:
            break
        print(j)

输出结果:
1
1
1
1
1

#continue
for i in range(5):
    for j in range(1,11):
        if j%2 == 0:
            continue
        print(j,end='\t')  #不换行
    print()   #换行

输出结果:
1 3 5 7 9 
1 3 5 7 9 
1 3 5 7 9 
1 3 5 7 9 
1 3 5 7 9

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值