Python数据类型和表达式

Python数据类型和表达式

标识符(Identifier)

‣由程序员定义的名字;

‣ 允许采用大写字母、小写字母、数字、下划线(_)和汉字等字 符,但标识符的首字符不能是数字,中间不能出现空格;

‣大小写敏感;

‣ 不能与保留字相同;

‣允许使用汉字标识符,但我们不建议这么做。

‣ 五个不同的合法标识符:
Python_3_7, python_你好, _python_ABC
Python_3、python_3、PYTHON_3、PyThOn_3、pYtHoN_3

保留字(Keyword)

‣编程语言内部定义并保留使用的标识符。
在这里插入图片描述

变量

‣表示(或指向)特定值的标识符;

‣ 不需要事先声明(这一点和C语言很不一样),变量的赋值操作即 是变量的声明和定义的过程;

x=5

‣赋值语句并不返回值(与C语言不同),因此下边这条语句是不合法的;

x = (y = y +1)

‣ 支持多重赋值,比如:

x = y = z = 5

‣支持多个变量同时赋值,或者叫元组赋值

x , y , z = 5 , 10 , 15

变量同时赋值

a , b , c = 1, 1.5, 'a' 

a、b、c的类型分别是什么?

运行下面的代码

a , b , c = 1, 1.5, 'a'
print (type(a))
print (type(b))
print (type(c))
a , b = b , a
print (type(a))
print (type(b))

可以看到输出如下, 要时刻记住python变量的赋值操作即 是变量的声明和定义的过程;

<class 'int'>
<class 'float'>
<class 'str'>
<class 'float'>
<class 'int'>

常量

‣在程序执行过程中不能改变的数据,比如

5"abc"

‣ 没有命名常量,所以不能像C语言那样给常量起一个名字。

基本数据类型

布尔型

‣表示及运算与布尔代数完全一致; 只有True、False两种值。

数值类型

(1)整型:

‣有“无穷”精度;

‣ 可以使用多种进制。

在这里插入图片描述

(2)浮点型

‣ 所有浮点数必须带有小数部分,小数部分可以是0;

‣ 十进制表示和科学计数法表示; ‣ 数值范围存在限制,小数精度也存在限制;

‣ 2个浮点数一般不可以直接比较相等。

(3)复数类型

‣数学中的复数概念一致;

‣ 由实数部分和虚数部分构成;

‣复数的虚数部分通过后缀”J”或”j”来表示;

‣ 实部和虚部的数值都是浮点型;

‣对于复数z,可以通过z.real和z.imag分别获得它的实数部分和虚 数部分。

字符串:

‣以单引号或双引号或三个引号括起来的任意文本;

‣ 用\做转义字符;用r前缀表示不转义

‣本质上是一个字符序列,支持双向索引。

在这里插入图片描述

常用的转义符:

在这里插入图片描述

字符串操作:

可以通过+或*进行连接。

>>> "Hello" + "World"
'HelloWorld'
>>> "Hello" * 3 
'HelloHelloHello'

‣支持“切片”操作,切片的基本格式为:

<string>[<start>:<end>]

例如

>>> a='HelloWorld'
>>>a[2:5]
'llo'

‣字符串属于不可变序列类型,也就是说不允许通过索引改变字 符串的值,如:s[3] = “H“ #错误的用法

‣ 可以通过+或replace函数。

s=s[:6] + ‘BUPT' 

例如

>>> s='HelloWorld'
>>> s=s[:6] + 'BUPT'
>>> s
'HelloWBUPT'
>>> s=s.replace('o','O')
>>> s
'HellOWBUPT'

字符串的格式化:

‣使用字符串格式运算符(%);(不再改进)

‣ 使用字符串的format方法;

‣ f-string ,Formatted String Literals。(推荐)

‣format方法的基本用法:string.format(arg1,arg2…)

>>> "{}是一种程序设计语言,它目前的版本是{}".format("Python",3.7)
'Python是一种程序设计语言,它目前的版本是3.7'

{:格式控制标记}.format(string)

‣格式控制标记的基本格式:

[[填充]对齐]  [符号][#][0][宽度][分隔符][.精度][类型]

在这里插入图片描述

空值

‣只有一个值就是None;

‣ 不支持任何运算,没有任何内置方法,也没什么有用的属性, 它的布尔值总是False

常用数据类型的转换

‣不同数据类型进行混合运算时会隐式的进行数据类型的转换;

‣ 转换的原则为将所有的数据类型统一到最“大”的类型;

‣常用的数据类型转换函数:

bin()、oct()、hex()用来将整数转换为二进制、八进制 和十六进制形式。

bin()、oct()、hex()用来将整数转换为二进制、八进制 和十六进制形式

str()用来将其任意类型参数转换为字符串

运算符及表达式

算术运算符

在这里插入图片描述

‣加法运算及乘法运算还可以用于字符串类型;

‣ 幂运算支持复数、实数及整数;

‣除法运算是数学意义上的除法,运算结果为浮点数;

‣ 整除运算可以用于实数和整数;

‣取余运算可用于实数和整数。

逻辑运算符

‣ and、or、not分别代表与运算、或运算、非运算;

‣ and和or具有惰性求值或叫逻辑短路的特点;

‣ and和or并不一定会返回True或False,而是得到最后一个被计算 的表达式的值;运算符not一定会返回True或False。

‣ and和or具有惰性求值或叫逻辑短路的特点

示例:求a和b 中的较大者,赋值给c

下面5种写法的结果是一样的

#写法1
a, b, c = 1, 2, 3
if a>b:
    c = a
else:
    c = b
print("写法1 c=",c)

a, b, c = 1, 2, 3
c = a if a>b else b
print("写法2 c=",c)

#写法3
a, b, c = 1, 2, 3
c= [b, a][a > b]
print("写法3 c=",c)

#写法4
a, b, c = 1, 2, 3
c = (a>b and a or b)
print("写法4 c=",c)

#写法5
a, b, c = 1, 2, 3
c = (a>b and [a] or [b])[0]
print("写法5 c=",c)

输出结果为

写法1 c= 2 
写法2 c= 2 
写法3 c= 2 
写法4 c= 2 
写法5 c= 2 

赋值运算符:

‣ ”=”是主要的赋值运算符;

‣ 增强赋值运算符:+=、-+、*=、**=、/=、//=、%=。

如果用op表示算术运算符,则下面两个赋值操作是等价的:

x op= y

x = x op y

运算符的优先级
在这里插入图片描述

基本输入/输出

input()

‣接收任意输入,返回字符串类型;

‣ 在获得用户输入之前可以包含一些提示性文字;

x = input("请输入:")

print()

‣语法格式为:

print(*objects, sep=’ ’, end=’\n’, file=sys.stdout, flush=False)

‣ objects为需要输出的内容;sep用于指定数据之间的分隔符; end用于指定输出的结尾;file用于指定输出位置;flush确定输 出是否使用缓存。

‣结合字符串的格式化可以得到各种格式化的输出。

a,b,c=1,2,3
print(a,b,c,sep='#')

输出为

1#2#3

本文结束。。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Galaxy_Robot

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

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

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

打赏作者

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

抵扣说明:

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

余额充值