Python基础知识点梳理 推荐收藏

2020-06-15 17:37:18 浏览数 (1)

从今天开始将给大家介绍Python的基础知识。本篇主要介绍Python的变量,标识符,转义字符,几个基本的数据类型字符串(包括几种字符串的扩展用法)、布尔值和空值,类型检查,类型转换等。在下一篇中,我们会介绍Python的控制流语句,想学习Python的朋友要持续关注我们哟!

变量

Python中使用变量,不需要声明,直接为变量赋值即可 Python 中不能使用没有进行过赋值的变量如果使用没有赋值过的变量,会报错 NameError: name 'b' is not defined Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值

代码语言:javascript复制
a = 10
b = 'hello'
a = 'hello'
print(a)  ##打印出了hello

标识符

  • 在Python中所有可以自主命名的内容都属于标识符 比如:变量名、函数名、类名
  • 标识符必须遵循标识符的规范: 标识符中可以含有字母、数字、下划线,但是不能使用数字开头 例子:a_1 _a1 _1a
  • 标识符不能是Python中的关键字和保留字 也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
  • 命名规范: 在Python中注意遵循两种命名规范: 1). 下划线命名法 所有字母小写,单词之间使用_分割 如:max_length min_length hello_world xxx_yyy_zzz 2). 帕斯卡命名法(也叫大驼峰命名法) 首字母大写,每个单词开头字母大写,其余字母小写 如:MaxLength MinLength HelloWorld XxxYyyZzz

字符串(str)

  • 字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型

在Python中字符串需要使用引号引起来

引号可以是双引号,也可以是单引号,但是注意不要混着用

代码语言:javascript复制
s = 'hello'
s = "hello"
  • 相同的引号之间不能嵌套,举例:
代码语言:javascript复制
# 错误用法:   s = "子曰:"学而时习之,不亦说乎!"" 会报错
#正确用法如下: 
s = '子曰:"学而时习之,不亦说乎!"'
  • 可以使用三重引号来表示一个长字符串 ''' '''

三重引号可以换行,并且会保留字符串中的格式, 举例:

代码语言:javascript复制
s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦'''

print(s)运行结果:
代码语言:javascript复制

转义字符

  • 可以使用 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容

例子:

' 表示'

" 表示"

t 表示制表符

n 表示换行符

\ 表示反斜杠

uxxxx 表示Unicode编码

举例:

代码语言:javascript复制
s = "子曰:"学而时习之,不亦说乎!""
print(s)

s = 'u2250'
print(s)

运行结果:

字符串相关用法

  • 字符串之间也可以进行加法运算

如果将两个字符串进行相加,则会自动将两个字符串拼接为一个

字符串只能和字符串进行加法运算,不能和其他的类型进行加法运算

a = 'abc' 'haha' '哈哈' print("a = " a) # "a = " a 相当于两个字符串拼接,这种写法在Python中不常见 a = 123 print('a =',a)

运行结果:

  • 在创建字符串时,可以在字符串中指定占位符

%s 在字符串中表示任意字符

%f 浮点数占位符

%d 整数占位符

代码语言:javascript复制
myname = 'Yuki'
b = 'I am %s'%myname
print(b)

yourname = 'Jack'
b = 'Hello %s, I am %s'%(yourname,myname)
print(b)

yourname = 'Bunpoat'
b = 'hello %3.5s'%yourname # %3.5s字符串的长度限制在3-5之间
print(b)

b = 'hello %s'3.456  #%s会将123.456当成一个字符串
print(b)

b = 'hello %.2f'3.456 #%f浮点数占位符 %.2f会保留两位小数,四舍五入
print(b)

b = 'hello %d'3.95 
print(b) #%d 整数占位符

运行结果:

  • 格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串

在格式化字符串中可以直接嵌入变量

代码语言:javascript复制
a = 'Yuki'
print('a= %s'%a)

b='Jack'
print('b= %s'%b)

c=f'hello {a} and {b}!'   #在格式化字符串f 中可以直接嵌入变量
print(c)

运行结果:

扩展题:创建一个变量来保存你的名字,然后通过四种格式化字符串的方式在命令 行中显示欢迎***光临!

代码语言:javascript复制
###创建一个变量来保存你的名字,然后通过四种格式化字符串的方式在命令行中显示欢迎***光临!

myname='Yuki'
print('欢迎 ' myname ' 光临!')   ###拼串

print('欢迎',myname,'光临!')    ###多个参数

print('欢迎 %s 光临!'%myname)   ###占位符

print(f'欢迎 {myname} 光临!')   ###格式化字符串

运行结果:

  • 字符串的复制(将字符串和数字相乘)

* 在语言中表示乘法 如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回

代码语言:javascript复制
a = '=' * 50
print(a)
a = '*' * 50
print(a)

运行结果:

布尔值和空值

  • 布尔值(bool)主要用来做逻辑判断

布尔值一共有两个 True 和 False True表示真 False表示假 布尔值实际上也属于整型,True就相当于1,False就相当于0

代码语言:javascript复制
a = 1  True
print('a = %d'%a)

b = 1  False
print('b = %d'%b)

运行结果:

  • None(空值)

None专门用来表示不存在

代码语言:javascript复制
b = None
print(f'b = {b}')

运行结果:

类型检查

  • type()用来检查值(变量)的类型

该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值

代码语言:javascript复制
print(type('123')) # <class 'str'>
print(type(1)) # <class 'int'>
print(type(1.5)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('hello'))  # <class 'str'>
print(type(None)) # <class 'NoneType'>
a = 'Hello'
print(type(a)) #<class 'str'>

运行结果:

类型转换

类型转换四个函数 int() float() str() bool()

1. int() 可以用来将其他的对象转换为整型

规则: a. 布尔值:True -> 1 False -> 0 b. 浮点数:直接取整,省略小数点后的内容 c. 字符串:合法的整数字符串,直接转换为对应的数字;如果不是一个合法的整数字符串,则报错

d. 对于其他不可转换为整型的对象,直接抛出异常 ValueError 2. float() 和 int()基本一致,不同的是它会将对象转换为浮点数 3. str() 可以将对象转换为字符串 True -> 'True' False -> 'False' 123 -> '123' 4. bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值 规则:对于所有表示空性的对象都会转换为False,其余的转换为True

代码语言:javascript复制
a = False
print(f'variable a's type before {type(a)}') #variable a's type before <class 'bool'>
a = int(a)
print(f'variable a's type now {type(a)}') #variable a's type now <class 'int'>


a = 11.6
a = int(a)
print(f'variable a's type is {type(a)}, value is {a}') #variable a's type is <class 'int'>, value is 11


a = 1
a = float(a)
print(f'variable a's type is {type(a)}, value is {a}') #variable a's type is <class 'float'>, value is 1.0

a = 123
a = str(a)
print(f'variable a's type is {type(a)}, value is {a}') #variable a's type is <class 'str'>, value is 123

运行结果:

赋值运算符 = 可以将等号右侧的值赋值给等号左侧的变量

= a = 5 相当于 a = a 5 -= a -= 5 相当于 a = a - 5 *= a *= 5 相当于 a = a * 5 **= a **= 5 相当于 a = a ** 5 /= a /= 5 相当于 a = a / 5 //= a //= 5 相当于 a = a // 5 %= a %= 5 相当于 a = a % 5

关系运算符 关系运算符用来比较两个值之间的关系,总会返回一个布尔值 如果关系成立,返回True,否则返回False > 比较左侧值是否大于右侧值 >= 比较左侧的值是否大于或等于右侧的值 < 比较左侧值是否小于右侧值 <= 比较左侧的值是否小于或等于右侧的值 == 比较两个对象的值是否相等 != 比较两个对象的值是否不相等 注意:上面说的相等和不等比较的是对象的值,而不是id is 比较两个对象是否是同一个对象,比较的是对象的id is not 比较两个对象是否不是同一个对象,比较的是对象的id 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算, 当对字符串进行比较时,实际上比较的是字符串的Unicode编码 比较两个字符串的Unicode编码时,是逐位比较的 利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较

代码语言:javascript复制
result = 10 > 20  # False
result = 30 > 20  # True
result = 30 < 20  # False
result = 10 >= 10  # True
result = '2' > '1'  # True
result = '2' > '11'  # True
result = 'a' > 'b'  # False
result = 'c' < 'd'  # True
result = 'ab' > 'b'  # False
result = 1 == 1  # True
result = 'hello' == 'hello'  # True
result = 'abc' == 'bcd'  # False
result = 'abc' != 'bcd'  # True
result = 1 == True  # True
result = 1 is True  # False,is 比较两个对象是否是同一个对象,比较的是对象的id

print(id(1),id(True))   ##1和True的id分别是269837488 269620432
result = 1 is not True  # True

逻辑运算符 逻辑运算符主要用来做一些逻辑判断 1. not 逻辑非

not可以对符号右侧的值进行非运算 1). 对于布尔值,非运算会对其进行取反操作,True变False,False变True 2). 对于非布尔值,非运算会先将其转换为布尔值,然后再取反 2. and 逻辑与 and可以对符号两侧的值进行与运算 1). 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False 2). 与运算是找False的 3). Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值 3. or 逻辑或 or 可以对符号两侧的值进行或运算 1). 或运算两个值中只要有一个True,就会返回True 2). 或运算是找True的 3). Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值

代码语言:javascript复制
#注意:以下#右边的内容代表注释或是返回值
result = True and True # True
result = True and False # False
result = False and True # False
result = False and False # False
True and print('你猜我出来吗?')  #第一个值是True,会看第二个值,所以print()会执行
False and print('你猜我出来吗?')  #第一个值是False,不会看第二个值,所以print()不会执行

result = True or True # True
result = True or False # True
result = False or True # True
result = False or False # False
False or print('你猜我出来吗?')  #第一个值为False,继续看第二个,所以打印语句执行
True or print('你猜我出来吗?')  #第一个值为True,不看第二个,所以打印语句不执行

# True and True
result =  and  # 2
# True and False
result =  and  # 0
# False and True
result =  and  # 0
# False and False
result =  and None # 0

# True or True
result =  or  # 1
# True or False
result =  or  # 1
# False or True
result =  or  # 1
# False or False
result =  or None # None

条件运算符(三元运算符) 语法:语句1 if 条件表达式 else 语句2 执行流程: 条件运算符在执行时,会先对条件表达式进行求值判断 如果判断结果为True,则执行语句1,并返回执行结果 如果判断结果为False,则执行语句2,并返回执行结果

代码语言:javascript复制
#比较a和b谁大
a = 
b = 
print('a的值比较大!') if a > b else print('b的值比较大!')

#获取a和b之间的较大值
max = a if a > b else b
print(f'a和b之间的较大值是{max}')

# 通过条件运算符获取三个值中的最大值
a = 
b = 
c = 
max = a if (a > b and a > c) else (b if b > c else c)  # 不推荐这么使用
print(f'a b c之间的较大值是{max}')

运行结果:

运算符的优先级 和数学中一样,在Python运算也有优先级,比如先乘除 后加减 运算符的优先级可以根据优先级的表格来查询, 在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算 如果优先级一样则自左向右计算 关于优先级的表格,你知道有这么一个东西就够了,千万不要去记 在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序

0 人点赞