我表姐刚给我发了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就学到这里