2018-4-3 if while基本用法

26 篇文章 0 订阅
18 篇文章 0 订阅

复习及基础补充

所有编程语言都有大体格式,
关键字 函数名 (参数类型 参数){}.

最好用isinstance,type判断不了子类集成的父类属性

学习内容

  • if条件判断

数据判断 (字符串)1.是否为空
if也可以用strip,举例if a.strip

判断是否为一个字典

这里写图片描述

上面的str()就是强制转换为字符串 然后字符串+字符串

  • len()长度

描述
Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
语法
len()方法语法:
len( s )
参数
s – 对象。
返回值
返回对象长度。

这里写图片描述

  • if实例1

补充

isdigit()用法
描述 Python isdigit() 方法检测字符串是否只由数字组成。
语法 isdigit()方法语法:
返回值 如果字符串只包含数字则返回 True 否则返回 False。

age = input("please input you age")

if age.strip():                   #这里是去除空格,再判断
    if age.isdigit():             #这里是检测字符串是否只由数字组成      
        if int(age) >= 18:        #检测是否满足条件
            print("你成年了")
        else:
            print("你未成年")
    else:
        print("输入的不是数字")
else:
    print("输入空格无效")

注意,if后面的冒号不能忘

  • if实例2

Python中用elif代替了else if,所以if语句的关键字为:if–elif–else。

若全部用if语句,程序运行时会遍历所有if(不管每个if后的逻辑运算是否为True)。而用if-elif,程序运行时,只要if或后续某一个elif之一满足逻辑值为True,则程序执行完对应输出语句后自动结束该轮if-elif(即不会再去冗余地执行后续的elif或else)。程序执行效率更高,在项目越庞大代码越多的>情况下体现越明显。

number = input("请输入数字")
if int(number) > 0:
    print("{0}是正数".format(number))
elif int(number) < 0:   
    print("{0}是正负数".format(number))
else:
    print("{0}等于0".format(number))

while循环

实例1

a = 100
while a >= 1:        #当a大于等于1
    print(a)
    a -= 1           #a=a-1,再重新判断,回到第一步

运行结果会打印100到1

这里写图片描述

实例2

ture死循环,while True会不停循环

score=59
while True:
    if score>60:
        print("及格")
    else:
        print("不及格")

会不断输出“不及格”

这里写图片描述

实例3
在while里,1和True都是死循环,但是1的执行效率要比True高,因为1是机器码,true到最后还是会被识别成1

score=59
while 1:
    if score>60:
        print("及格")
    else:
        print("不及格")

会不断输出“不及格”

实例4

continue和break
continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。

这里写图片描述

这里遇到一个报错,

这段代码将会报错,SyntaxError: ‘break’ outside loop。

因为Python要求严格缩进,while循环的内容所有都必须缩进一空格。

while循环体覆盖了剩下所有代码。因为if else 和while对齐,不在while循环体内。

相比C语言,虽然省去了大括号,但代价是循环体内严格缩进。

现在就不难理解为什么报错是break不在循环内。

以上引用自https://blog.csdn.net/zshfeng/article/details/50478881

更改缩进后还是报错(IndentationError: expected an indented block),后来发现,在最开始处忘了添加while
解决办法,在代码开头加入循环判断while 1

问题解决

代码如下:

while 1:
    age = input("please input you age")

    if age.strip():
        if age.isdigit():
            if int(age) >= 18:
                print("你成年了")
                break
            else:
                print("你未成年")
                break
        else:
            print("输入的不是数字,请重新输入")
            continue
    else:
        print("输入空格无效,请重新输入")
        continue
  • 乘法口诀
for i in range(1,100):
    print("{0}×{1}={2}".format(i,i,i*i))

1到99的平方

这里写图片描述
此时每次计算后都换行

这里写图片描述
print里end的默认值是回车,指定end值就不会自动换行
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值