【python】学习笔记(二)

保留字与标识符

保留字:指在python中被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量,函数,类,模块和其他对象的名称来使用

查询python中的保留字

import keyword
print(keyword.kwlist)
print(len(keyword.kwlist)) # 获取保留字的个数

Python标识符的命名规则

可以是字符(英文、中文)、下划线“_”和数字,并且第一个字符不能是数字

不能使用Python中的保留字

标识符严格区分大小写

true='真'
Ture='真' # True是python中的保留字

以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符

允许使用中文作为标识符,但不建议使用

Python标识符的命名规范

  • 模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母例如:grame_main
  • 包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如:com.ysjpython ,不推荐使用com_ysjpython
  • 类名采用单词首字母大写形式(Pascal风格)。例如: MyClass
  • 模块内部的类采用“”+Pascal 风格的类名组成,例如:在MyClass中的内部类InnerMyClass
  • 函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔
  • 常量命名时采用全部大写字母,可以使用下划线
  • 使用单下划线“_”开头的模块变量或函数是受保护的,在使用“from xxxi mport *”语句从模块中导入时,这些模块变量或函数不能被导入使用双下划线“_”开头的实例变量或方法是类私有的
  • 以双下划线开头和结尾的是Python的专用标识,例如: init 0表示初始化函数


变量与常量

变量的语法结构:

变量名=value

                                                                                                                                                          变量命名应遵循以下几条规则

  • 变量名必须是一个有效的标识符
  • 变量名不能使用python中的保留字
  • 慎用小写字母i和大写字母O
  • 应选择有意义的单词作为变量名

变量的使用和定义

print('Luck_number的类型是:',type(Luck_number))
print(my_name,'幸运数字是:',Luck_number)

# python可以动态修改变量的数据类型,通过赋不同类型的值就可以直接修改
Luck_number='北京欢迎你'
print('Luck_number的数据类型是:',type(Luck_number )) # <class 'str'>

# 在python中允许多个变量指向同一个值
no=number=1024 # no与number都指向了1024这个整数值
print(no,number)
print(id(no))  # id()查看对象的内存地址 1690715358224
print(id(number)) # 1690715358224

常量

  • 常量就是在程序运行过程中值不允许改变的量
  • 全部使用大写字母和下划线命名

常量的定义

pi=3.1415926 #定义了一个变量
PI=3.1415926 #定义了一个常量

数值类型

整数类型表示的数值是没有小数部分的数值,包含正整数,负整数和0

整数的四种表示形式

num=987 # 默认是十进制,表示整数
num2=0b1010101 # 使用二进制,表示整数
num3=0o765 # 使用八进制,表示整数
num4=0x87ABF # 使用十六进制,表示整数
print(num)
print(num2)
print(num3)
print(num4)

浮点数类型表示带有小数点的数值,由整数部分和小数部分组成

注意事项:两个浮点类型的数在进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数

浮点数类型的使用

height=187.6 # 身高
print(height)
print(type(height)) # type()查看height这个变量的数据类型

x=10
y=10.0
print('x的数据类型:',type(x)) #int
print('y的数据类型:',type(y)) #float

x=1.99E1413
print('科学计数法:',x,'x的数据类型:',type(x))

print(0.1+0.2) # 不确定的尾数问题 0.30000000000000004
print(round(0.1+0.2,1)) # 0.3

python中的复数与数学中的复数形式完全一致,由实部虚部组成

j=√-1

在python中实数部分使用.real表示,虚数部分使用.imag表示

复数类型的使用

x=123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)

字符串类型

字符串类型连续的字符序列,可以表示计算机所能识别的一切字符

字符串的界定符:单引号,双引号,三引号

字符串类型的使用

city='西安'
address="西安市"
print(city)
print(address)

#多行字符串
info='''地址:
收件人:
手机号:
'''
info2="""地址:
收件人:
手机号:
"""

print(info)
print('-------------------------')
print(info2)

原字符:是转义字符失效的字符,r或R

转义字符的使用

print('北京')
print('欢迎你')
print('北京\n欢迎你') # 遇到\n即换行,可以连续换多行
print('北\n京\n欢\n迎\n你\n')

print('北京北京\t欢迎你')
print('hellooooo') #hello是五个字符,一个制表位是8个字符8-5=3
print('hello\toooo')

print('老师说:\'好好学习,天天向上\'')
print('老师说:\"好好学习,天天向上\"')

# 原字符 ,使转义字符失效的符号r或R
print(r'北\n京\n欢\n迎\n你\n')
print(R'北\n京\n欢\n迎\n你\n')

字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引

对字符串中某个子串区间检索称为切片

切片的语法结构

字符串或字符串变量[N:M]

字符串的索引和切片

s='HELLOWORLD'
print(s[0],s[-10])
print('北京欢迎你'[4]) #序号0和序号-10表示的是同一个字符
print('北京欢迎你'[-1])# 获取字符串索引为4

print(s[2:7]) # 从2开始到7结束不包含7 正向递增
print(s[-8:-3]) # 反向递减
print(s[:5]) # 默认从0开始
print(s[5:]) # 默认切到字符串结尾

常用的字符串操作

字符串类型的操作

x='2022年'
y='北京东奥会'
print(x+y) # 连接两个字符串

print(x*10) #将x的内容复制10次
print(10*x)

print('北京' in y)
print('上海' in y)

布尔类型

  • 用来表示“真”值或“假”值的数据类型
  • 在python中使用标识符Ture或Flase表示布尔类型的值
  • Ture表示整数1,Flase表示整数0

布尔值为False的情况如下

  • False或者是None
  • 数值中的0,0.0,虚数0
  • 空序列,包含空字符串,空元组,空列表,空字典,空集合
  • 自定义对象的示例,该对象的_bool_()方法返回False或,_len_()方法返回0

布尔类型的使用

x=True
print(x)
print(type(x))

print(x+10) # 11 -->1+10
print(False+10) #10 -->0+10

print(bool(18)) #测试一下整数18的布尔值   True
print(bool(0),bool(0.0)) #False
#总结:非0的整数的布尔值都是True

print(bool('北京欢迎你')) # True
print(bool('')) # False
#所有非空字符串的布尔值都是True

print(bool(False)) # False
print(bool(None)) # False

数据类型之间的转换

x=10
y=3
z=x/y
print(z,type(z)) #隐式转换  float

#float类型转成int类型,只保留整数部分
print('float类型转成int类型:',int(3.14))
print('float类型转成int类型:',int(3.9))
print('float类型转成int类型:',int(-3.14))
print('float类型转成int类型:',int(-3.9))

#将int转成float类型
print('将int转成float类型:',float(10))

#将str转成int类型
print(int('100')+int('200'))

#将字符串转成int或float时报错的情况
#print(int('18a')) #ValueError: invalid literal for int() with base 10: '18a'
#print(int('3.14')) #ValueError: invalid literal for int() with base 10: '3.14'
#print(int('45a.987')) #ValueError: invalid literal for int() with base 10: '45a.987'

#chr()  ord()
print(ord('杨')) #杨在Unicode表中对应的整数值
print(chr(26472)) # 26472整数在unicode表中对应的字符是什么

#进制之间的转换操作,十进制与其他进制之间的转换
print('十进制转换成十六进制:',hex(26472))
print('十进制转换成八进制:',oct(26472))
print('十进制转换成二进制:',bin(26472))

eval函数

  • python中的内置函数
  • 用于去掉字符串最外侧的引号,并按照python语句的方式执行去掉引号后的字符串
  • eval()函数经常和input()函数一起使用

eval的语法格式:

        变量=eval(字符串)

eval函数的使用

s='3.14+3'
print(s,type(s))
x=eval(s)  #使用eval函数去掉s字符串zhong左右的引号,执行加法运算
print(x,type(x))

#eval函数经常与input()函数一起使用,用来获取用户输入的数值
age=eval(input('请输入你的年龄:')) #将字符串类型转成int类型,相当于int(age)
print(age,type(age))

height=eval(input('请输入你的身高:'))
print(height,type(height))

hello='北京欢迎你'
print(hello)
print(eval('hello')) #输出北京欢迎你
#print(eval('北京欢迎你')) #NameError: name '北京欢迎你' is not defined

运算符

算术运算符

算数运算符:用于四则运算的符号

print('加法:',1+1)
print('减法:',1-1)
print('乘法:',2*3)
print('除法:',10/2)
print('整除:',10//3)
print('取余:',10%3)
print('幂运算:',2**4) #2*2*2*2
print(10/0) #ZeroDivisionError: division by zero

赋值运算符

x=20 #直接赋值,直接将20赋值给左侧的变量x
y=10
x=x+y #将x+y的和赋值给x,x的值为30
print(x) #30
x+=y #40 相当于x=x+y
x-=y #相当于x=x-y
print(x) # 30
x*=y
print(x) #300
x/=y
print(x) #30.0 发生了类型转换 x的数据类型位float
print(type(x)) #float
x%=2 # 相当于 x=x%2
print(x) #0.0
z=3
y//=z  # 相当于 y=y//z
print(y) #3

y**=2 # 相当于 y=y**2
print(y) # 9

#python 支持链式赋值
a=b=c=100  # 相当于 a=100 b=100 c=100
print(a,b,c)

#python 支持系列解包赋值
a,b=10,20 # 相当于 a=10 b=20
print(a,b)

#如何交换两个变量的值?
a,b=b,a  #将a的值赋给b,将b的值赋给a
print(a,b)

比较运算符

print('98大于90吗:',98>90)
print('98小于90吗:',98<90)
print('98等于90吗:',98==90)
print('98不等于于90吗:',98!=90)
print('98大于等于98吗:',98>=98)
print('98小于等于98吗:',98<=98)

逻辑运算符

print(True and True)
print(True and False)
print(False and False)
print(False and True)

print('-'*40)

print(8>7 and 6>5)#True
print(8>7 and 6<5)#False
print(8<7 and 10/0)#False 10/0没有运算,当第一个表达式的结果为false,直接得结果,不会计算and右边的表达式

print('-'*40)

print(True or True)
print(True or False)
print(False or False)
print(False or True)
print(8>7 or 10/0)  #True ,左侧的表达式结果为True时,or的右侧表达式根本不执行运算

print('-'*40)

print(not True)#False
print(not False)#True
print(not(8>7))#False

位运算符

位运算符把数字看作二进制数来进行计算

print('按位与:',12&8)#0b1000
print(bin(12)) #0b1100
print(bin(8))  #0b1000

print('按位或:',4|8)#0b1100
print(bin(4)) #0b0100
print(bin(8)) #0b1000

print('按位异或:',31&22)#0b01001
print(bin(31))#0b11111
print(bin(22))#0b10110

print('按位取反:',~123)
print(bin(123)) #0b1111011
print(bin(~123))#-0b1111100

print('左移位:',2<<2) # 8, 表示2向左移动两位  2*2*2
print('左移位:',2<<3)  #相当于 2*2*2*2

print('右移位:',8>>2) # 8向右移动两位,相当于8//2,4//2
print('右移位:',-8>>2)# -2

运算符优先级

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值