Python-Day03:数据类型、运算符和if条件分支

一、标识符

1.1 命名规则
  • 只能由数字、字母、下划线组成,不能有其他符号;
  • 不能以数字开头;
  • 严格区分大小写;
  • 不能使用关键字。

关键字:
‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’

1.2 命名规范
  • 尽量不使用大小写区分不同变量;
  • 尽量见名知意;
  • 多个单词可用下划线分开;
  • 遵循驼峰命名法。

例如:stuScore(小驼峰) StuScore(大驼峰)

1.3 其他标识符命名规则
  • 常量:常量名所有字母大写,由下划线连接各个单词。

如:MAX_OVERFLOW,TOTAL

  • 函数&方法: 函数名应该为小写,多个单词可以用下划线连接单词以增加可读性。

如:my_function,my_example_function

  • 文件名: 全小写,可使用下划线。
  • 包: 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入.
  • 模块: 与包相同。
  • 类: 总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

二、Python数据类型

2.1 数据类型分类
类别说明
Number数字类型,包含:int,float,complex
str字符串
bool布尔值,只有两个值:True、False
None空值类型,只有一个None值
list列表,用来存相同类型的数值
tuple元组,不可改变的列表,用来存相同类型的数值
dict字典,存不同类型的数值
set集合,不打印相同的值
bytes字节
2.2 数字类型转换

int(x):将x值转换为整型;
str(x):将x值转换为字符串;
float(x):将x值转换为浮点数。

三、运算符

3.1 算术运算符

算术运算符有:+ - *【乘法】 /【除法】 %【求余,取模】 **【求幂,次方】 //【取整】

乘法运算符*:若是字符串 * 数字,则结果为该字符串重复打印n次。
//取整运算符:取整运算时,向下取接近商的整数。

print("y" * 3) => yyy
print(3 // 2) => 1,print(-3 // 2) => -2
3.2 关系运算符
  • 作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】
  • 使用场景:if语句,循环

1.只有相同类型数据比较;
2.字符串比较,实际是对应ASCII码值的比较。

  • 常用ASCII码:
字符十进制字符十进制字符十进制
A65a97048
B66b98149
C65c99250
D65d100351
E65e101452
553
W87w119654
X88x120755
Y89y121856
Z90z122957

代码演示:

print(A > a) => False
print(3 < 4) => True
print("abc" > "adc") => False	# 对应位进行比较,从左向右遇到第一对不相同值时比较大小即可!
3.3 逻辑运算符
  • and:有False时都为False。
print(True and True) => True
print(True and False) => False
print(False and False) => False
  • or:有一个结果为真时,输出结果为真。
  • not:取反,一定会得到一个布尔值。
print(not True) => False
3.3.1 各数据类型布尔值
  • bool类型:False是0,True是1;
  • 字符串:空字符串输出为假,其他为真(空格也是一个字符);
  • None:输出是假;
  • list类型:[]空列表为假,其他为真;
  • dict类型:{}空字典为假,其他为真;
3.3.2 短路操作
  1. and在运算中以bool类型进行,但是输出结果不一定是bool值,如:

x = 10 and 3 and 4 => 4
x = 0 and 3 and 4 => 0
x = 3 and 0 and 4 => 0

  • 过程:从左向右判断,直至遇到False值返回输出0,;若最后都没0,则返回输出最后一位值。
  1. or:在运算中以bool类型进行,但是输出结果不一定是bool值,如:

x = 0 or 3 or 4 => 3
x = 3 or 0 or 4 => 3

  • 过程:与and原理相反。遇到第一个真值返回输出该值。
3.4 成员运算符、身份运算符
3.4.1 成员运算符

成员运算符:in,not in。输出结果为布尔值。

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。
  • 代码演示:
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
 
if ( a in list ):
   print ("1 - 变量 a 在给定的列表中 list 中")
else:
   print ("1 - 变量 a 不在给定的列表中 list 中")
 # 结果为:1 - 变量 a 不在给定的列表中 list 中
 
if ( b not in list ):
   print ("2 - 变量 b 不在给定的列表中 list 中")
else:
   print ("2 - 变量 b 在给定的列表中 list 中")
   #结果为:2 - 变量 b 不在给定的列表中 list 中
3.4.2 身份运算符

身份运算符:is,is not。判断内存地址是否相同,输出结果为布尔值。

运算符描述
isis 是判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果 True,否则返回 False。
  • 代码演示:
a = 20
b = 20
 
if ( a is b ):
   print ("1 - a 和 b 有相同的标识")
else:
   print ("1 - a 和 b 没有相同的标识")
   # 结果为:1 - a 和 b 有相同的标识

if ( a is not b ):
   print ("4 - a 和 b 没有相同的标识")
else:
   print ("4 - a 和 b 有相同的标识")
   # # 结果为:4 - a 和 b 有相同的标识

实际运算过程是id(a) is id(b)是否相同。
id():函数用于获取对象内存地址。

3.5 赋值运算符、位运算符
3.5.1 赋值运算符

简单赋值运算符:= 给一个变量进行赋值。

复合赋值运算符:+= -= %= /= … 给一个变量进行赋值,同时给变量进行相应的运算。

  • 代码演示:
num1 = 10
#注意:在赋值运算符中,先计算等号右边的表达式,然后将计算的结果赋值给等号左边的变量
num2 = num1 + 10
print(num2) => 20

#复合 +=,其他原理同+=。
num3 = 10
num3 += 100   #等价于num3 = num3 + 100
print(num3) => 110
3.5.2 位运算符(了解)

先将十进制转换为二进制,以多位为准少位补齐0。

运算符描述
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^按位异或运算符:当两对应的二进位相异时,结果为1
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
  • 代码演示:
a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0
 
c = a & b;        # 12 = 0000 1100
print ("1 - c 的值为:", c)
 
c = a | b;        # 61 = 0011 1101 
print ("2 - c 的值为:", c)
 
c = a ^ b;        # 49 = 0011 0001
print ("3 - c 的值为:", c)
 
c = ~a;           # -61 = 1100 0011
print ("4 - c 的值为:", c)
 
c = a << 2;       # 240 = 1111 0000
print ("5 - c 的值为:", c)
 
c = a >> 2;       # 15 = 0000 1111
print ("6 - c 的值为:", c)
3.6 运算符优先级

在这里插入图片描述

四、IF分支

if后的判断语句输出结果为bool值,若为真则进入if语句!

4.1 if语句【单分支】
  • 语法:
    if 表达式:
    ​ 执行语句
  • 说明;要么执行,要么不执行,当表达式成立的之后,则执行语句;如果表达式不成立,则直接跳过整个if语句继续执行后面的代码
  • 注意:表达式为真才执行语句
    假:0 0.0 False “” None【空值】
  • 一般情况下,表达式使用都是比较运算符
  • 代码演示:
#练习:从控制台输入一个数,判断这个数是否是偶数
num = int(input())
if num % 2 == 0:
	print(num,"是一个偶数")
print(num,"不是一个偶数")
4.2 if…else语句【双分支】
  • 语法:
    if 表达式:
    ​ 执行语句1
    else:
    ​ 执行语句2
  • 说明:如果表达式成立,则执行语句1;如果不成立,则执行语句2
  • 代码演示:
#  从控制台输入一个数,判断这个数是否是偶数
num = int(input())
if num % 2 == 0:
	print(num,"是一个偶数")
else:
	print(num,"不是一个偶数")
4.3 if…elif…else语句【多分支】
  • 语法:
    if 表达式1:
    ​ 执行语句1
    elif 表达式2:
    ​ 执行语句2
    elif 表达式3:
    ​ 执行语句3
    ……
    else:
    ​ 执行语句n

  • 说明:实现了多选一的操作,会根据不同的条件从上往下来进行匹配,如果匹配上了,则执行对应的语句,然后直接结束整个if-elif语句,但是,如果所有的条件都不成立的话,则执行else后面的语句

注意:不管if-elif-else有多少个分支,都只会执行其中的一个分支

  • 代码演示:
#需求:从控制台输入一个数字,根据数字打印年龄段
age = int(input())
if age < 0:
	print("输入有误")
elif age <= 3:
	print("婴儿")
elif age <= 6:
	print("儿童")
elif age <= 12:
	print("青少年")
elif age <= 18:
	print("青年")
else:
	print("hello")
4.4 if嵌套语句
  • 语法:
    if 表达式1:
    ​ 执行语句1
    ​ if 表达式2:
    ​ 执行语句2
  • 说明:if语句的嵌套,可以在单分支,双分支,多分支之间进行任意组合
  • 代码演示:
score = int(input("请输入学生的成绩:"))
if score < 0 or score > 100:
	print("输入有误")
else:
	if score >= 90:
  	print("优秀")
	elif score >= 80:
  	print("良好")
	elif score >= 70:
  	print("还行")
	else:
  	print("")

注意:从语法角度来说,嵌套的层数没有任何的限制,但是,为了代码的可读性和可维护性,嵌套层数不要超过3层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值