码迷,mamicode.com
首页 > 编程语言 > 详细

python基础二

时间:2018-08-03 22:35:04      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:代码   nts   年龄   b2c   数据   验证   无限   http   输入   

while 循环

结构:
while 条件:
    循环语句

死循环

while True:
    没有break语句情况下

终止循环

一、 改变条件 (标志位的概念):一般默认使用flag来作为标志位。

flag = True
num = 0
while flag:
    print(num)
    num = num + 1
    if num < 10:
        flag = False

二、 break 终止循环:跳出它所在的循环体。

num = 0
while True:
    print(num)
    num = num + 1
    if num < 10:
        break

计算 1 + 2 + 3 ....100 的结果(三种方式)

1
result = 0
count = 1

while True:
    result += count
    count += 1
    if count == 101:
        break
print(result)
2
result = 0
count = 1

while count < 101:
    result += count
    count += 1
print(result)
3
result = 0
count = 1

flag = True
while flag:
    result += count
    count += 1
    if count == 101:
        flag = False
print(result)

continue: 结束本次循环,继续下一次循环。

while True:
    print(111)
    print(222)
    continue
    print(333)

结果是

111
222
111
222
...

while-else结构:如果while循环被break打断,则不执行else代码。

count = 1
while count < 5:
    print(count)
    count = count + 1
    if count == 3: break
else:
    print(666)
print(222)

结果是

1
2
222

应用场景:

  • 验证用户名密码,重新输入这个功能需要while循环。
  • 无限次的显示页面,无限次的输入......

格式化输出

  • 制作一个模板,某些位置的参数是动态的,像这样,就需要用格式化输出。
  • 字符串的动态替换
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
sex = input('请输入性别:')

% 占位符 s 数据类型为字符串 d 数字

第一种方式:

msg = '你的名字是%s,你的年龄%d,你的性别%s' % (name,age,sex)
print(msg)

第二种方式

msg = '你的名字是%(name1)s,你的年龄%(age1)d,你的性别%(sex1)s' % {'name1':name,'age1':age,'sex1':sex}
print(msg)

bug 点 在格式化输出中,只想单纯的表示一个%时,应该用%% 表示

msg = '我叫%s,今年%d,我的学习进度1%%' % ('alex',28)
print(msg)

运算符

==  比较的两边的值是否相等
= 赋值运算
!= 不等于
+= 举例: count = count + 1  简写 count += 1
-=
*=     : count = count * 5   简写 count *= 5
/=
**=
//=
...

逻辑运算符:and or not

优先级:()> not > and > or

第一种情况,前后条件为比较运算

print(1 < 2 or 3 > 1)
print(1 < 2 and 3 > 4)
print(1 < 2 and 3 > 4 or 8 < 6 and 9 > 5 or 7 > 2)
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)

第二种情况,前后两边的条件为数值

'''
x or y if x is True,return x
'''
print(1 or 2)
print(1 and 2)
print(5 or 2)
print(5 and 2)
print(0 or 2)
print(-1 or 2)

int与bool之间的转换

  • 0 对应的bool值为False,非0 都是True.
  • True 1 ,False 0
print(bool(100))
print(bool(-1))
print(bool(0))
print(int(True))
print(int(False))

变态面试题:思考

print(1 > 2 or 3 and 4 < 6)
print(2 or 3 and 4 < 6)

答案为:

True
2

如果 x or y 语句中x为真,即为x,否则为y
    真 or 真 --> x
    真 or 假 --> x
    假 or 真 --> y
    假 or 假 --> y
>>> 3 or 4
3
>>> 3 or 0
3
>>> 0 or 3
3
>>> '' or 0
0

如果 x and y 语句中x为假,即为x,否则为y
    真 and 真 --> y
    真 and 假 --> y
    假 and 假 --> x
    假 and 真 --> x
深层次理解:
由于or的特性是只要一个为真就判定为真,即判断x为真后,不用再来判断y。若x为假后才会判定y,所以是结果为y。   这样的话程序就能以最小的步数来执行并得到结果。
由于and的特性是只要一个为假就判定为假,即判断x为假后,不用再来判断y。若x为真后才会判定y,所以是结果为y。  这样的话程序就能以最小的步数来执行并得到结果。

技术分享图片

python基础二

标签:代码   nts   年龄   b2c   数据   验证   无限   http   输入   

原文地址:https://www.cnblogs.com/lanhoo/p/9416389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!