100天大数据零基础入门到就业------第三天:python运算符与循环

一.python运算符

1.算术运算符 

运算符描述实例
+1+1 输出结果为 2
-1 - 1 输出结果为 0
*2 * 2 输出结果为 4
/10 / 2 输出结果为 5
//取整9//输出结果唯一
%取余(取模)9%4输出结果为1
**幂指数2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2
()小括号小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9
#例一
num1 = 10
num2 = 2

# 四则运算 + - * /
print(f'加:{num1 + num2}')
print(f'减:{num1 - num2}')
print(f'乘:{num1 * num2}')
print(f'除:{num1 / num2}')



#例二
num1 = 20
num2 = 6
num3 = 5

# 1、整除
print(f'整除:{num1 // num2}')
# 2、求余数
print(f'余数:{num1 % num2}')
# 3、幂指数
print(f'幂指数:{num2 ** 3}')
# 4、圆括号
print(f'优先级:{(num1 + num2) * num3}')

2.赋值运算符

=赋值将=右侧的结果赋值给等号左侧的变量
n = 5
f = 10.88
s = 'hello world'

3.复合赋值运算符

运算符描述实例
+=加法赋值运算符i + =1   ==    i=i+1
- =减法赋值运算符i - =1    ==   i=i-1
*=乘法赋值运算符i*=1    ==    i= i*i
/=除法赋值运算符i/=1  ==  i=i /1
//=整除赋值运算符i//=1  ==  i= i//1
%=取余赋值运算符i%=1  == i= i%1
**=幂赋值运算符i**=1  == i=i**1
i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')

num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')

num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')

4.比较运算符

>判断左边值是否大于右边值,返回结果为真(TRUE)或假(FALSE)
<判断左边值是否小于右边值,返回结果为真(TRUE)或假(FALSE)
>=判断左边值是否大于等于右边值,返回结果为真(TRUE)或假(FALSE)
<=判断左边值是否小于等于右边值,返回结果为真(TRUE)或假(FALSE)
==判断左边值是否等于右边值,返回结果为真(TRUE)或假(FALSE)
!=判断左边值是否不等于右边值,返回结果为真(TRUE)或假(FALSE)
num1 = 10
num2 = 20

print(num1 > num2)  # False
print(num1 < num2)  # True
print(num1 >= num2) # False
print(num1 <= num2) # True
print(num1 == num2) # False
print(num1 != num2) # True

5.逻辑运算符(或与非)

and逻辑与,只有当两边的表达式全部为真,则最终结果返回为真,否则返回为假。
or逻辑或,只要有一方为真,则整个表达式的返回结果就为真。除非两边的表达式都为假,则整个结果返回为假
not

逻辑非,如果x为true,返回false

               如果x为false,返回true 

① 女孩子要求比较高,要求男孩子必须要有房且有车

表达式1 and 表达式2
当表达式1为True且表达式2为True时,则整个表达式返回结果为True
当表达式1或表达式2中有一个表达式为假,则整个表达式返回结果为False


有房 and 有车  则  牵手成功
有房 and 没车  则  牵手失败
没房 and 有车  则  牵手失败

② 女孩子要求一般,要求男孩子有房或者有车即可  

表达式1 or 表达式2
当表达式1为True或表达式2为True时,则整个表达式返回结果为True
当表达式1与表达式2都为False时,则整个表达式才会返回False


有房 or 有车  则  牵手成功
有房 or 没车  则  牵手成功
没房 or 有车  则  牵手成功
没房 or 没车  则  牵手失败

案例: 

a = 1
b = 2
c = 3

print((a > b) and (b > c))  # False
print((a > b) or (b > c))   # False
print((a < b) or (b > c))   # True
print(not (a > b))          # True

 6.短路运算

在Python代码中,逻辑运算符的运算,要遵循==短路运算==原则。

① 表达式1 and 表达式2,如果表达式1条件为真,则最终的运算结果由右边的表达式2来决定。如果表达式1条件为假,则最终结果为假。其右边的表达式2不需要在进行运算。

② 表达式1 or 表达式2,如果表达式1为真,则最终的运算结果由表达式1来决定,为真。如果表达式1为假,则最终结果由表达式2来决定。如果表达式2为真,则最终结果为真,如果表达式2为假,则最终结果为假。

print(3 and 4 and 5)  # 5
print(5 and 6 or 7)   # 6
4 > 3 and print('hello world')  # 输出hello world

在逻辑运算中,不一定逻辑运算符的两边都是纯表达式,也可以是数值类型的数据或字符串类型的数据。

Python把0、空字符串和None看成 False,其他数值和非空字符串都看成 True==,所以:

① 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

print(3 and 4)  # 4
print(0 and 1)  # 0

② 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

print(6 or 7)  # 6
print(6 and 7 or 8)  # 7

7. 运算符优先级(由高到低)

运算符描述
**
*   /    //   %乘 除取整取余
+    -加减
< > < =>大于  小于 小于等于  大于等于
==   !=等于 不等于
+= *=  -=  /=  //= %= **=赋值运算符
and or  not逻辑运算符

二.if选择判断结构

1.IF结构

if 条件判断:
    则执行某段代码... 
print()

if True:
    print('条件成立执行的代码1')
    print('条件成立执行的代码2')

# 下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')
age = 18
if age >= 18:
    print('满足18岁要求,可以正常上网')

age = int(input('请输入您的年龄:'))
if age >= 18:
    print('满足18岁要求,可以正常上网')

2.if .....else...结构

if 条件判断:
    当条件判断为True时,则执行这个语句段
else:
    当条件判断为False时,则执行这个语句段

age = int(input('请输入您的年龄:'))
if age >= 18:
    print('满足18岁要求,可以正常上网')
else:
    print('不满足18岁要求,回家好好学习,天天向上')

3. if...elif...else多条件判断结构

if 条件判断1:
    如果此条件为True,则执行这个语句段
elif 条件判断2:
    如果此条件为True,则执行这个语句段
elif ...:
    ...
else:
    如果以上所有条件判断都不满足时,则执行这个语句段

案例: 

① 中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;

② 如果年龄在18-60岁之间为合法工龄;

③ 大于60岁为法定退休年龄。

# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:
    print('你还是一个童工,回去好好学习')
elif 18 <= age <= 60:
    print('合法工龄,可以正常工作')
else:
    print('您已经达到了退休年龄,回家好好休息')

4.if嵌套结构 

if 外层条件判断:
    # 如果条件为True,则执行以下语句段
    if 内层条件判断:
        # 如果内层条件为True,则执行以下语句段
else:
    # 如果条件为False,则执行以下语句段

"""案例:法律规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。编写 Python 程序判断是否为酒后驾车。"""
proof = int(input('请输入驾驶员100ml血液中的酒精含量:'))
# 判断proof酒精含量是否小于20mg
if proof < 20:
    print('驾驶员不构成酒驾')
else:
    # 已经构成酒驾 => 两种类型(酒驾与醉驾)
    if proof >= 80:
        print('驾驶员已构成醉驾')
    else:
        print('驾驶员已构成酒驾')
#猜拳游戏
import random


# 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布
player = int(input('请输入您的出拳0-代表石头,1代表剪刀,2代表布:'))
# 第二步:电脑随机出拳(后续解决)
computer = random.randint(0, 2)

print(computer)

# 第三步:根据用户以及计算机的出拳判断输赢
# 什么情况,玩家会赢
# player==0且computer==1 或 palyer==1且computer==2 或 player==2且computer==0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player==2 and computer == 0):
	print('玩家获胜')
elif player == computer:
	print('平局')
else:
    print('电脑获胜')

三 .while循环

1.while循环基本语法

# ① 定义一个计数器(初始化一个计数器)
i = 0或1
# ② 编写while循环结构
while 循环条件(判断 计数器 是否达到了目标位置):
    循环体1
    循环体2
    ...
    # ③ 在循环内部更新计数器
    i = i + 1 或 i += 1

总结:while循环三步走

==① 初始化计数器==

==② 编写循环条件(判断计数器是否达到了目标位置)==

==③ 在循环内部更新计数器==

# ① 初始化计数器
i = 0
# ② 编写循环条件(判断计数器是否达到了100)
while i < 100:
    print('老婆大人,我错了')
    # ③ 在循环体内部更新计数器
    i += 1

2.whille循环案例

#求1--100的值

# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
    # 第五步:循环累加变量i
    result += i
    # 第三步:更新计数器的值
    i += 1
print(f'1~100累加后的结果:{result}')




#求1--5000的所有偶数的和
# 初始化计数器
i = 1
# 定义result,用于接收所有偶数的和
result = 0
# 编写循环条件
while i <= 100:
    # 将来写代码的位置
    if i % 2 == 0:
        # 代表变量i是一个偶数
        result += i
    # 更新计数器
    i += 1
print(f'1~100之间所有偶数的和:{result}')





 3.循环的关键词

break() 终止循环程序

# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
    # 当变量i == 4的时候,终止循环
    if i == 4:
        print('我已经吃饱了,实在吃不下了...')
        break
        
    # 正在吃第几个苹果
    print(f'正在吃第{i}个苹果')
    
    # 更新计数器
    i += 1

continue () 跳过本次循环接着向下循环

# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
    # 当变量i == 3的时候,中止当前循环,继续下一次循环
    if i == 3:
        # 手工更新计数器(非常重要)
        i += 1
        print('吃到了一只大虫子,这个苹果不吃了...')
        continue
        
    print(f'正在吃第{i}个苹果')
    # 更新计数器
    i += 1

注意:continue需要手工更新计数器

4 .while循环嵌套

# 初始化计数器                                           
i = 0 或 i = 1
# 编写循环条件
while i < 边界值:
    循环体代码
    # 更新计数器
    i += 1

# 第一步:初始化外层循环计数器
i = 1
# 第二步:编写外层循环的条件
while i <= 3:
    # 第四步:初始化内层循环计数器
    j = 1
    # 第五步:编写内层循环的条件
    while j <= 3:
        #循环体代码
    	# 第六步:更新内层循环计数器
    	j += 1
    # 第三步:更新外层循环计数器
    i += 1

 案例:

#打印直角三角形
# 定义外层循环计数器
i = 1
# 编写外层循环的循环条件
while i <= 5:
    # 定义内层循环计数器
    j = 1
    # 编写内层循环的循环条件
    while j <= i:
        print('*  ', end='')
        j += 1
    print('')
    # 更新外层循环计数器
    i += 1



#打印 9 x 9乘法表
# 初始化外层循环计数器
i = 1
# 编写外层的循环条件
while i <= 9:
    # 初始化内层循环计数器
    j = 1
    # 编写内层的循环条件
    while j <= i:
        print(f'{j} x {i} = {i * j}', end='  ')
        # 更新内层循环的计数器
        j += 1
    print('')
    # 更新外层循环计数器
    i += 1

四.for循环 

1.for循环基本语法

for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作, 当循环次数未知的情况,建议使用for循环。

for 临时变量 in 序列:
    重复执行的代码1
    重复执行的代码2

2.range方法(函数)

基本语法:

range(stop)
range(start, stop[, step])

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5
step:步长,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)

for i in range(5):
    print(i)

3.for循环案例 

#求1--100的和
# 定义一个变量,用于接收1~100的和
result = 0
# 从1开始循环,循环100次
for i in range(1, 101):
    result += i
print(f'1~100的和为{result}')



#求1 ~ 100之间所有偶数的和
# 定义一个变量,用于接收1~100之间所有偶数的和
result = 0
# 从1开始循环,循环100次
for i in range(1, 101):
    if i % 2 == 0:
        result += i
print(f'1~100之间所有偶数的和为{result}')

4.循环中的两大关键字

#案例:遇到字符'a',则终止整个循环
str1 = 'zhangsan'
for i in str1:
    if i == 'a':
        break
    print(i)
#案例:遇到字符'a',跳过循环,继续下一次循环
str1 = 'zhangsan '
for i in str1:
    if i == 'a':
        continue
    print(i)

5.for循环嵌套

基本语法

# 外层循环
for i in 序列1:
    # 内层循环
    for j in 序列2:
        循环体

#案例:使用for循环嵌套实现打印九九乘法表
#分析:外层循环主要用于控制循环的行数,内层循环用于控制列数
for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{j} x {i} = {i * j}', end='  ')
    # 打印换行符
    print('')

五. while循环与for循环中的else结构

1.为什么需要在while循环中添加else 结构

循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码

强调:'正常结束',非正常结束,其else中的代码时不会执行的。(如遇到break的情况)

2. while循环中else的基本语法

# 初始化计数器
i = 0
# 编写循环条件
while i < 5:
    print('老婆大人,我错了')
	# 更新计数器
    i += 1
# 循环结束后,女朋友就原谅我了
else:
    print('好开森,女朋友原谅我了...')

3.break对while....else结构的影响

需求:女朋友生气,要求道歉5遍:老婆大人,我错了。道歉到第三遍的时候,媳妇埋怨这一遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性:

第一种情况:更生气,不打算原谅,也不需要道歉了,程序如何书写?

第二种情况:只有这一遍不真诚,可以忍受,继续下一遍道歉,程序如何书写?

# 初始化计数器
i = 0
# 编写循环条件
while i < 5:
    if i == 2:
        print('这遍说的不够真诚')
        break
    print('老婆大人,我错了')
	# 更新计数器
    i += 1
# 循环结束后,女朋友就原谅我了
else:
    print('好开森,女朋友原谅我了...')


#由运行结果可知,如果我们在while循环中,使用了break,一旦break语句执行了,则else语句则不会输出。

4.continue对while...else结构的影响

# 初始化计数器
i = 0
# 编写循环条件
while i < 5:
    if i == 2:
        i += 1
        print('这遍说的不够真诚')
        continue
    print('老婆大人,我错了')
	# 更新计数器
    i += 1
# 循环结束后,女朋友就原谅我了
else:
    print('好开森,女朋友原谅我了...')
#由运行结果可知,如果我们在while循环中,使用了continue,虽然continue语句执行了,但循环属于正常结束,else语句会输出。

5.for循环结构中的else结构

for 临时变量 in 序列:
    循环体
else:
    当for循环正常结束后,返回的代码

str1 = 'zhangsan'
for i in str1:
    if i == 's':
        print('遇s不打印')
        break
    print(i)
else:
    print('循环正常结束之后执行的代码')
#由运行结果可知,如果我们在for循环中,使用了break,一旦break语句执行了,循环就属于非正常结束,else语句则不会输出。



str1 = 'zhangsan'
for i in str1:
    if i == 's':
        print('遇s不打印')
        continue
    print(i)
else:
    print('循环正常结束之后执行的代码')
#由运行结果可知,如果我们在for循环中,使用了continue,虽然continue语句执行了,但循环属于正常结束,else语句会输出。


6.循环的选择

① 对于循环次数已知的情况,建议使用while循环

② 对于循环次数未知的情况,建议使用for循环

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据小子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值