Python笔记2——数据类型和运算符

目录

保留字与运算符

标识符的命名规范:

变量与常量

变量

变量语法结构:变量名=value

变量名命名规则:

常量

数据类型

数值类型

整数类型(不可变数据类型)

浮点数类型(不可变数据类型)

 复数类型

字符串类型(不可变数据类型)

布尔类型(不可变数据类型)

数据类型转换

运算符

算数运算符:处理四则运算的符号

赋值运算符:用于为变量进行赋值操作

比较运算符(关系运算符):

逻辑运算符:针对布尔值再次进行一个运算

位运算符:二进制数据按位运算


保留字与运算符

保留字(keyword):可以直接在程序中引用的,具有特殊意义的单词

import keyword
print(keyword.kwlist) # 获取关键字的列表
print(len(keyword.kwlist)) # 获取关键字个数,运行可得35个

# 保留字不能用于变量使用

标识符:就是一个名字,我们可以为变量命名一个标识符

标识符的命名规范:

  • 模块名尽量短小,全部使用小写字母,用下划线分割字母
  • 包名尽量短小,全部使用小写字母,不推荐使用下划线而是反域名的形式,如com.ysjpython
  • 类名单词首字母大写,如:MyClass
  • 模块内部类采用“_” + Pascal风格的类名
  • 函数、类的属性和方法的命名,全部使用小写字母和下划线组成
  • 常量命名时采用全大写字母
  • '_'开头的模块变量或者函数受保护,使用"from...import..."语句导入时,这些内部变量或者函数不能被导入
  • '__'双下划线开头表明属于类私有实例变量或方法
  • 双下划线开头和结尾代表python专用标识,如__init__()表示初始化函数,这是python独有的

###该标识符非常重要,其中涉及到的概念牵扯到python入门的很多关键知识,其次还帮助我们规范代码,了解整体python的编写知识。

变量与常量

变量

变量语法结构:变量名=value

我们可以很容易发现,在python中变量实际上是没有声明的,因此他不知道应该分配多少空间给变量,因此在python中所有的变量我认为就是一个指针类型的数据,它会指向一个有明确类型的数据

堆内存:存放具体的数据

栈内存:存放这个变量名

那么赋值就是让栈里面的变量指向堆里面的数据

python中的变量是一个动态类型的变量,不同于java和c语言,他也允许多赋值符号,多变量指向同一个数据

>>> my_name = 'mxy'
>>> type(my_name)
<class 'str'>
>>> my_name = 123
>>> type(my_name)
<class 'int'>
# 多变量指向同一个值
>>> no = number = 4
>>> id(no),id(number)
(140705455680512, 140705455680512)

变量名命名规则:

  • 必须是有效标识符
  • 不能用python保留字,False、True......
  • 慎用小写字母l(和i的大写一模一样)和大写字母)O(与零0相似)
  • 变量名应该易于理解,有一定意义,例如number,而不是a,b,c之类的简单变量

常量

python中没有特别说明常量的结构因此要自定义常量。全部大写和下划线组成,在程序中不允许改变默认为常量,增强可读性。

数据类型

数值类型

整数类型(不可变数据类型)

进制种类引导符号
十进制

二进制0b或者0B
八进制0o/0O
十六进制0x/0X

浮点数类型(不可变数据类型)

# 两个浮点数进行运算,有一定的概率运算结果后增加一些“不确定的”尾数

>>> 0.1+0.2
0.30000000000000004
# 这是由于精度问题导致的,解决办法round()函数
>>> round((0.1+0.2),1)
0.3
# 后一位是保留一位小数

 复数类型

python中复数也是由实部和虚部构成,实数部分使用.real表示,虚数部分使用.imag表示

虚数部分:j = (-1)^½

>>> x = 128 + 133j
>>> x.real, x.imag
(128.0, 133.0)

字符串类型(不可变数据类型)

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

界定符:单引号、双引号、三引号

# 注意三引号的作用——多行字符串

>>> a = '123'
>>> b = "123"
>>> c = '''123
... 456'''
>>> a,b,c
('123', '123', '123\n456')
# 当我想要利用单引号包括多行字符串显然python是不支持的
>>> a = '123
  File "<stdin>", line 1
    a = '123
           ^
SyntaxError: EOL while scanning string literal

 转义字符:'\n', '\t', '\'', '\\'

原字符:使转义字符失效的字符r或者R

        字符索引:对字符串中的某个字符进行检索如s[0],s[-1]

        字符串切片:对字符串中的某个子串或区间的检索

        切片的语法结构:[N:M](从N开始到M结束但不包括M位)

        eval函数(内置函数):去掉字符串最外侧的引号,用来获取用户输入的数值,并且当做变量名或者表达式去处理(这里我认为咱们可以理解为eval去掉引号后要想数值正确就必须剩下的内容是python可以处理的内容,例如表达式或者变量名,从一个字符串变成变量名)

>>> 'abcdefg'[4]
'e'
>>> 'abcdefg'[4:7]
'efg'
>>> 'abcdefg'[-3:-1]
'ef'
>>> 'abcdefg'[:5]
'abcde'
>>> 'abcdefg'[2:]
'cdefg'
>>> 'abcdefg'[:-2]
'abcde'
>>> 'abcdefg'[-5:]
'cdefg'
# eval函数
 s = '123+4'
>>> s,type(s)
('123+4', <class 'str'>)
>>> eval(s)
127
>>> age = eval(input("input your age:"))
input your age:18
>>> age
18
>>> 北京='hello'
>>> eval('北京')
'hello'
>>> eval('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'hello' is not defined

常用的字符串操作:

操作符描述说明
x+y字符串连接起来
x*n或n*x将x字符串复制n次
x in y如果x是y的子串,True,否则为False
>>> 'abc'+'123'
'abc123'
>>> 'abc'*3,3*'abc'
('abcabcabc', 'abcabcabc')
>>> 'ab' in 'abc123'
True
>>> 'c23' in 'abc123'
False

布尔类型(不可变数据类型)

用来表示真(True)和假(False)的数据类型,主要在逻辑判断中用的居多。

# 非0的布尔值都为True,空字符串布尔值为False,非空都为True

>>> x=True
>>> type(x)
<class 'bool'>
>>> x+10
11
>>> bool(0),bool(0.01)
(False, True)
>>> bool('北京欢迎你')
True
>>> bool('')
False
>>> bool(False),bool(None)
(False, False)

数据类型转换

类型转换有两种方式:隐式转换(自动转换)和显式转换(通过函数转换)

# 注意字符串转成整数是有限制的

# chr()和ord()是一对儿相反地函数操作

>>> ord('马'),chr(39532)
(39532, '马')
# 十进制与其他进制之间的转换,转换成字符串类型
>>> hex(123456)
'0x1e240'
>>> oct(123456)
'0o361100'
>>> bin(123456)
'0b11110001001000000'

运算符

算数运算符:处理四则运算的符号

运算符描述说明

+

加法
-减法
*

乘法

/除法
//

整除

%

取余

**幂运算

优先级从高到低:

  1. **
  2. *、/、%、//
  3. +、-

赋值运算符:用于为变量进行赋值操作

运算符展开形式
=x = y
+=

x = x + y

-=x = x - y
*=x = x * y
/=x = x / y
%=x = x % y
**=x = x ** y
//=x = x // y

比较运算符(关系运算符):

运算符描述说明
>大于
<小于
==等于
!=不等于
>=大于或等于
<=小于或等于

逻辑运算符:针对布尔值再次进行一个运算

表达式1表达式2表达式1 and 表达式2表达式1 or 表达式2not 表达式1
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

位运算符:二进制数据按位运算

  • 按位与:“&”
  • 按位或:“|”
  • 按位异或:“^”
  • 按位取反:“~”
  • 左移位:“<<”
>>> 0b00001111&0b11110000
0
>>> 0b00001111|0b11110000
255
>>> 0b00001111^0b11110000
255
>>> ~0b00001111
-16
>>> 0b00001111<<2
60
>>> 0b00001111<<1
30
>>> 0b00001111>>1
7
>>> 0b00001111>>2
3

以上一些python中的基本数据类型和算法,作者也是在入门python,但是作者看的教程现在褒贬不一,如果后续还是不太行的话作者可能看教材学习的多,期待后续的学习,至少我们不管选择了什么,动起来就好。

与君共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值