python学习笔记(七):运算符和流程控制

一.其他数据类型与bool之间的转换

True :非0的数字,非空的字符串,列表,元祖,字典(后面这三个后面会说到,现在知道就行)

False :0,‘’(),{},[],None

注意:None 不能理解为0,0是有意义的,None是一个特殊的空值

#bool为False的情况
#1.空字符串
s1 = ""
print(bool(s1))
#2.数字
s2 = 0
print(bool(s2))
#3.空元祖
t = ()
print(bool(t))
#4.空列表
li = []
print(bool(li))
#5.空字典
dic = {}
print(bool(dic))
#6.None
s3 = None
print(bool(s3))

运行结果:

二.运算符

运算符:算术运算符,逻辑运算符,赋值运算符,复合赋值运算符,关系运算符

1.算术运算符

下面以a= 10,b= 20为例进行运算

运算符 描述 实例
+ 两个对象相加,a+b 输出结果为30
-

两个对象相减,a-b 输出结果为-10

* 两个数相乘或者是返回一个被重复数次的字符串,a * b 输出的结果为200
/ b / a输出的结果为:2.0;输出结果都为浮点型的
// 取整除

也可以叫做地板除,顾名思义就是向下取整,b // a输出结果为:2.0;如果有任意一个操作数为浮点型,则结果也为浮点型

% 取余

返回除法的余数 b % a 输出结果为0

** 返回x的y次幂a**b为a为10的20次方,输出结果为100000000000000000000

练习1:判断12是不是偶数

print(12%2)

结果:

练习2:数字逆序输出如将123变成321输出

#数字逆序输出如将123变成321输出
value = 123
#提取个位
Gw = 123%10
#提取十位
Sw = (123//10)%10
#提取百位
Bw = 123//100
#进行逆序操作
Nx_value = Gw*100 + Sw*10 + Bw
print(Nx_value)

结果为:

练习3:求2的3次幂

a = 2**3
print(a)

结果:

2.赋值运算符

运算符 描述 实例
= 赋值运算符 把 = 号右边的结果给左边的变量 num =1+2*3结果num的值为7

3.复合赋值运算符(自增运算)

4.逻辑运算符

优先级为:not > and >or ,可以添加()来提升优先级

and和or里面存在一个短路逻辑:

(1)a and b and c and d

如果a为False 则后面所有的and 均不执行,直接返回False

如果a为True 则继续判别,如果期间存在False,则直接返回False。

(2)a or b or c or d

如果a为True 则后面所有的or 均不执行,直接返回True

如果a为False 则继续判别,如果期间存在True,则直接返回True。

5.比较(关系)运算符

(1)混合类型比较

Python 支持数字表达式的混合类型比较,同样是将简单类型转换为复杂类型进行比较

(2)连续比较

Python允许我们把大小比较测试连接起来,成为诸如范围测试的连续比较

例如表达式(A>B>C)测试B是否在A到C之间,等同于B>A and B<C

三.流程控制语句

当我们走路的时候遇到了十字路口,我们会停下来选择要走的方向,同样在Python程序中遇到“十字路口”的时候,该如何选择方向呢?

这个时候就要用到Python 中的流程控制语句

1.顺序流程控制语句:

顺序流程控制语句,就是按从至下的顺序依次执行

#顺序流程控制语句
print("aaa")
print("bbb")
print("ccc")

2.分支控制语句

根据条件表达式的结果执行相应的代码

分支控制语句的基本格式有多种,如下:

(1)if 语句

结构 格式 执行流程
if

if 条件表达式:

...代码...

如果表达式成立True,则执行if 块中的代码,否则不执行

注意事项:

1.条件表达式后面有冒号":"

2.if块是靠缩进表示的,一般是缩进4个空格(一个Tab键)

练习1:

定义一个变量age

判断age是否大于等于18

如果大于等于18则可以进入网咖

age = int(input("请输入你的年龄:"))
if age >= 18:
    print("欢迎来到XX网咖")

运行结果:

(2)if ...else ...语句

练习:输入用户的年龄,进行判断

age = int(input("请输入你的年龄:"))
if age >= 18:
    print("欢迎来到XX网咖")
else :
    print("未成年人不允许上网")

运行结果为:

练习2:定义一个变量age判断年龄是否在1--120之间

age = int(input("请输入你的年龄:"))
if age >= 0 and age <= 120:
    print("输入的年龄合法")
else :
    print("你输入的年龄不正确")

运行结果:

(3)if....elif....elif ...else结构

holiday_name = input("请输入节日:")
if holiday_name == "情人节":
    print("你今天应该买鲜花,看电影")
elif holiday_name == "平安夜":
    print("你今天应该买苹果,吃大餐")
elif holiday_name == "生日":
    print("你今天应该买蛋糕")
else:
    print("尼玛都是节日啊")

运行结果:

(4)if嵌套

if嵌套指的是if块中嵌套if

has_ticket = True
Knife_length = 23
if has_ticket == True:
    if Knife_length >= 20:
        print("刀具超过了20,不能上火车")
    else :
        print("安检通过,可以上车")
else :
    print("没有车票不能上车")

运行结果:

(5)if/else三元表达式:

(6)综合案例:猜拳游戏

使用随机数,要用到random模式,这个暂时知道怎么用就行

#导入模块
import random
#玩家出拳
play = int(input("请出拳(1----石头,2----剪刀,3----布):"))
#电脑随机出拳,调用random
computer = random.randint(1,3)#randint(1,3)表示1~3里面随机出拳
#进行比较
if (play ==1 and computer ==2) or (play == 2 and computer == 3) or (play == 3 and computer ==1):
    print("玩家胜利")
elif play == computer:
    print("平局!")
else:
    print("电脑胜利!你弱爆了")

结果为:

3.循环控制语句

(1)while 循环

练习1:向控制台打印10遍“凉凉”歌曲

count = 0
while count < 10:
    print("送一首凉凉给你~~")
    count+=1
print("程序结束了")

结果为:

(a)死循环

如果条件判断语句永远是True,循环体一直执行,这时的循环就变成了死循环

(b)结束循环

#break
num = 0
while num < 10:
    if num == 4:
        print("跳出循环了")
        break
    print("当前的num值为%d",(num))
    num += 1

结果如下:

我们会发下当“num == 4”条件成立,就跳出了循环下面的语句就没有在执行了,这就是break的用法

#continue
num = 0
while num < 10:
    if num == 4:
        print("跳出循环了")
        num += 1
        continue
    print("当前的num值为%d",(num))
    num += 1

运行结果如下:

我们会发现当“num == 4”条件成立时,continue下面的语句就不执行了,重新开始新的一轮。

(c)while ....else :

练习1:输入一个数,判断是否为质数

质数又称素数,一个大于1的自然数,除了1和他自身以外不能被自然数整除的数,叫做质数

#判断是否我素数
num = int(input("请输入一个数:"))
if num <= 1 :
    print("这个数不是质数")
else:
    i = 2
    while i < num:
        if num % i == 0:
            print("这个数不是质数")
            break
        i +=1
    else:
        print("%d是质数"%(num))

运行结果如下:

(d)while嵌套循环

while循环体中在嵌套while循环,就叫做循环嵌套

练习:用“*”打印三角形

#用“*”打印三角形
i = 1
while i <= 5:
    j = 1
    while j <= i:
        print("* ",end="")
        j+=1
    print()
    i+=1

运行结果:

练习2:打印九九乘法表

#打印九九乘法表
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%d*%d = %d"%(j,i,i*j),end=" ")
        j+=1
    print()
    i+=1

运行结果:

练习3:统计数字,字母和下划线在字符串中的个数

#统计数字,字母和下划线在字符串中的个数
a ="abcd_12432_saSda_12"
Zm = 0
Sz = 0
Xhx =0
i =0
while i <len(a):
    if a[i] >= "0" and a[i] <= "9":
        Sz += 1
    elif a[i] == "_":
        Xhx += 1
    else:
        Zm += 1
    i+=1
print("字符串中数字有%d个,字母有%d个,下划线有%d个"%(Sz,Zm,Xhx))

运行结果:

(2)for循环

for循环可以遍历任何有序的序列对象内的元素

for语句可用于字符串,列表,元祖,其他内置可迭代对象以及之后我们能够通过

类所创建的新对象

(a)格式:

(b)range()函数

range(start,stop,step)函数默认产生一个从0开始的一个整数列表。

Start :表示整数的开始位置

Stop:表示整数的结束,但是不包含此值。

Step:表示不长,默认为1

我们通过三个实例来理解:

1.嵌套for循环

我们看一个例子来理解for循环嵌套:

练习1:实心矩阵

#实心矩阵
for i in range(5):
    for j in range(5):
        print("*",end="")
    print()

运行结果如下

练习2:空心矩阵:

#空心矩阵
for i in range(5):
    for j in range(5):
        if i == 0 or j == 0 or i == 4 or j == 4:
            print("*",end="")
        else:
            print(" ",end="")
    print()

运行结果如下:

发布了13 篇原创文章 · 获赞 18 · 访问量 8802

猜你喜欢

转载自blog.csdn.net/iew_gnez/article/details/88201563