python学习笔记20230628

文章通过示例介绍了Python中的continue语句在for循环中的使用,展示了如何在满足特定条件时跳过当前循环的剩余部分。作者还分享了一个寻找理想对象的趣味代码,探讨了如何修改代码以实现对特定问题的重复提问。此外,文章讲解了for循环结合range()函数进行固定次数迭代的概念,并给出了计算1到100求和的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我表姐刚给我发了100块钱,真好,她买了一个佳能m200相机,还不会使用,我和她交流了一下。不说了,学一下回宿舍摆烂。

continue语句

#代码示例
while True:
    print('who are u?')
    name = input()
    if name != 'joe':
        continue
    print('hello,joe.what is the password?')
    password = input()
    if password == 'fish':
        break 
print('access granted')

输出结果:

who are u?
ning
who are u?
joe
hello,joe.what is the password?
fish
access granted

注意的点:
1.true 区分大小写,这里要大写才行
2.注意最后一句代码前面没有空格,这里格式比较严谨,如果最后一行代码和倒数第二行对其,则不会输出结果
3.break跳出while循环

那么,我可以写一个找22岁的女友,身高170的简单交流代码,书写得到,这段代码我叫它 找对象1.0

while True:
    print('how old are you?')
    age = input()
    if age != '22':
        continue
    print('ok,you are 22, How tall are you?')
    high = input()
    if high != '170':
        continue
    print('hey,baby,i love you,do you love me?')
    answer = input()
    if answer == 'yeap':
        break
print('i have a girlfriend')

运行结果如下:

how old are you?
21
how old are you?
22
ok,you are 22, How tall are you?
168
how old are you?
22
ok,you are 22, How tall are you?
170
hey,baby,i love you,do you love me?
no
how old are you?
22
ok,you are 22, How tall are you?
170
hey,baby,i love you,do you love me?
yeap
i have a girlfriend

可以看到,要是有一点不满足,它就会重新从头开始,这也是符合常理的,要是对象A不适合,然后开始与对象B的问话,但是假如,A回答错了身高,要是想重新只问身高,这个代码该怎么修改?

经过研究并且询问chatgpt,得到了一下代码:
找对象2.0

age = ''
height = ''
answer = ''

while age != '22':
    print('How old are you?')
    age = input()

while height != '170':
    print('Okay, you are 22. How tall are you?')
    height = input()

while answer != 'yep':
    print('Hey, baby, I love you. Do you love me?')
    answer = input()

print('I have a girlfriend')

这里发现它分开循环了 这样才可以针对每个问题可以反复提问,而不至于不给女朋友撒谎的机会,也算是善良

一开始chatgpt修改了一下程序,只是简单的将代码断句,其实并不对
运行结果为:

How old are you?
21
How old are you?
22
Okay, you are 22. How tall are you?
156
Okay, you are 22. How tall are you?
170
Hey, baby, I love you. Do you love me?
no
Hey, baby, I love you. Do you love me?
yep
I have a girlfriend

可以看出,回答错误的问题,会重新提问。

age = ''
height = ''
answer = ''

这三行代码的作用是用来初始化变量的。它们将age、height和answer这三个变量的初始值设置为空字符串,这些代码的作用是确保在进入循环之前,这些变量具有初始值,以便在后续的条件判断中使用。

not name != ’ ’ 的逻辑实际上等价于 name == ’ ’

name = ''

while name == '':
    print('What is your name?')
    name = input()

print('Hello, ' + name + '! Nice to meet you.')

这段代码会要求用户输入名字,只有在用户输入的名字为空字符串时,循环才会继续迭代。当用户输入一个非空字符串后,循环终止,并打印出问候语。

for 循环和 range()函数

让一个代码块执行固定次数,而不是像while那样一直为True一直循环

叫我的名字五遍:

print('say my name 5 times?')
for i in range(5):
    print('Nathan '+str(i)+ ' ')

运行后:

say my name 5 times?
Nathan 0 
Nathan 1 
Nathan 2 
Nathan 3 
Nathan 4 

注意表达式 ’ + str(i) + ’ 的作用是将整数变量 i 转换为字符串,并将其连接到其他字符串中。没有可不行哈

高斯说让小孩子从0+到100,那么大学生就是不加,用python循环:
自己写的代码如下:

num = 0
for num in range(101):
    total=total+num
print('1+2+...+99+100='+'total')

毫无疑问是出错的,错误为:

*= RESTART: E:/APP/16 python/xn_study/20230628_while.py
Traceback (most recent call last):
  File "E:/APP/16 python/xn_study/20230628_while.py", line 3, in <module>
    total=total+num
NameError: name 'total' is not defined*

分析问题:
1.没弄明白num它是0初始,然后到101,恰好是到100,不用先定义,total,需要提前初始为0。
2.字符串的连接又忘记了
修改为:

total = 0
for num in range(101):
    total=total+num
print('1+2+...+99+100='+str(total))

str(total)这里首先需要把total弄成字符串,才可以连接起来,结果为:

1+2+...+99+100=5050

今天这个破python就学到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值