python(三):概念、语法、数据类型

基本概念

1.表达式
表达式就是一个类似于数学公式的东西,比如:10+5 ,表达式一般仅仅用来计算一些结果,不会对程序产生实质性的影响,如果在交互模式中输入了一个表达式,解释器会自动将表达式的结果输出。
2.语句
在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值

print()
input()
a=10

语句的执行一般会对程序产生一定的影响,在交互模式种不一定输出语句的执行结果。

3.程序(program)
程序就是由一条一条的表达式和一条一条的语句构成的

4.函数(function)
函数就是一种语句,函数专门用来完成特定的功能,如:fun();
函数的分类:

  • 内置函数
    由python解释器提供的函数,可以在python中直接使用,如:print() max() typy()等;
  • 自定义函数
    程序员自主创建的函数;

当我们需要完成某个功能时,就可以去调用内置函数,或自定义函数

函数有两个要素:

  • 参数
    -()中的内容就是函数的参数
    -函数中可以没有参数,也可以有多个参数,多个参数之间的使用用英文逗号隔开;
  • 返回值
    -返回值是函数的返回结果,不是所有的函数都有返回值;

基本语法

1.规范

  • 在python中严格区分大小写
  • python中的每一行就是一条语句,每条语句以换行结束
  • python中每一行语句不要过长,(规范中建议不要超过80个字符)
  • 一条语句可以分多行编写,多行编写时后边以反斜杠结尾
  • python是缩进严格的语言,所以在python中不要随便写缩进
  • #号表示注释

2.变量和标识符
python是一个动态类语言,可以为变量赋任意类型的值,也可以任意修改变量的值。

标识符:
在python中所有可以自主命名的内容都属于标识符。
比如变量名,函数名、类名。

标识符必须遵循标识符的规范:

  • 1.标识符中可以含有字母、数字、_,但是不能使用数字开头
  • 2.标识符不能是python中的关键字和保留字,也不建议使用python中的函数名作为标识符,因为这样会导致函数被覆盖
  • 3.命名规范:
    python中注意遵循两种命名规范:
    • 1)下划线命名法:所有字母小写,单词之间用_分割,例如max_length;
    • 2)帕斯卡命名法(大驼峰命名法):首字母大写,每个单词开头字母大写,其余字母小写;
    • 注:如果使用不符合标准的标识符,将会报错:Syntaxerror:invalid syntax。

数据类型

数据类型指的是变量的值的类型,也就是可以为变量赋哪些值:

  • 数值
    • 整型
      • 布尔值
    • 浮点数
    • 复数
  • 字符串
  • 空值
1.数值

python中数值分为了三种:整数、浮点数(小数)、复数

  • 在python中,所有的整数都是int类型;整数食物大小没有限制,可以是一个无限大的整数。如果数字的长度过大,可以使用下划线作为分隔符:
a = 1_000_003_999
  • 十进制的数字不能以0开头,其他进制的整数,只要是数字打印时,一定以十进制的形式展示的。
a = 0b10 #二进制0b开头
a = 0o10 #八进制0o开头
a = 0x10 #十六进制0x开头
  • 通过运算符对数值进行运算,并且可以保证整数运算的精确
a = 100
a = a + 3
  • 所有的小数都是float类型,对浮点数进行运算时,可能会得到一个不精确的结果
c = 0.1 + 0.2 #结果是0.3000000000004
2.字符串
字符串介绍

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

  • 字符串,必须使用引号引起来,不使用不是字符串;
    引号可以是单引号也可以是双引号,注意不要混着用,否则报错:SyntaxError:EOL while scaning string literal。
    相同的引号之间不能嵌套。
# 单引号和双引号不能跨行使用,跨行需要反斜杠连接
s = '小螺号,' \
    '滴滴滴吹,' \
    '海鸥听了展翅飞'

print(s)

运行效果,打印字符串不会换行:
在这里插入图片描述

  • 长字符串,使用三重引号来表示一个长字符串
# 三重引号可以换行,并且会保留字符串中的格式
s = '''小螺号,
滴滴滴吹,
海鸥听了展翅飞 '''

print(s)

运行效果:
在这里插入图片描述

  • 转义字符,可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
s = "子曰:\"学而时习之\""
print(s)

在这里插入图片描述

# 例子:
 \' 表示 '
 \" 表示 "
 \t 表示制表符,相当于按了一下tab键
 \n 表示换行符
 \\ 表示反斜杠
 \uxxxx 表示Unicode编码
s = '\u0040'
print(s)

在这里插入图片描述

格式化字符串

字符串之间也可以进行加法计算,如果将两个字符串进行相加,则会自动将两个字符串拼接为1个,字符串不能和其他类型进行加法运算,否则报错 TypeError:must be str, not int
格式化字符串的方式:

# 方式一:在print中传两个参数,格式化字符串
a = 123
print('a = ', a)

# 方式二:在创建字符串时,可以在字符串中指定占位符
# %s 在字符串中标识任意字符
b = 'hello %s'%'星星'
print(b)
c = 'hello %s, 你好 %s'%('tom', '星星')
print(c)

d = 'hello%3s'%'ab' # %3s 中的3表示限制占位符位数,不够用空格补齐
print(d)
e = 'hello %3.5s'%'abcdefgh' # %3.5s 字符串长度限制在3-5之间,3.5表示最少3个,最多5个
print(e)

# %f 浮点数占位符
f = 'hello %.2f'%100.246
print(f)

# %d 整数占位符
g = 'hello %d'%123.95
print('g = %s'%g)

# 方式三:格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串
# 在格式化字符串中可以直接嵌入变量
h = f'hi {f} {g}'
print('h = %s'%h)

在这里插入图片描述
练习:

# 练习:四种方式打印:欢迎 李先生 光临!
a = '李先生'
print('欢迎 ' + a + ' 光临!') # 拼串
print('欢迎', a, '光临!') # 多个参数
print('欢迎 %s 光临!'%a) # 占位符
print(f'欢迎 {a} 光临!') # 格式化字符串

在这里插入图片描述

复制字符串

将字符串和数字相乘

a = 'abc'
# 在语言中表示乘法
# 如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
a = a * 5
print(a)

在这里插入图片描述

3.布尔值和空值

布尔值(bool)
布尔值主要用来做逻辑判断,布尔值一共有两个,true和false。

  • True 表示 真
  • false 表示 假
a = True
print(a)
print(type(a))

在这里插入图片描述

布尔值实际上也属于整型,True相当于1,false相当于0:

print(1 + True)
print(1 + False)

在这里插入图片描述
空值 (None)
None专门用来表示不存在

a = None
print(a)
print(type(a))

在这里插入图片描述

4.类型检查

通过类型检查,可以检查指定值(变量)的类型

Type()  # 用来检查值的类型

在这里插入图片描述

5.对象
对象(object)介绍
  • python是一门面向对象的语言
  • 一切皆对象!
  • 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
  • 对象就是内存中专门用来存储指定数据的一块区域
  • 对象实际上就是一个容器,专门用来存储数据
  • 上述的数值、字符串、布尔值、None都是对象
对象的结构

每个对象中都要保存三种数据

  • id(标识)
    id用来标识对象的唯一性,每一个对象都有唯一的id,id相当于身份证号。
    通过id()函数来查看对象的id;
    id是由解析器生成的,在Cpython中,id就是对象的内存地址
    对象一旦创建,则它的id永远不能改变
print(id(123))

在这里插入图片描述

  • type(类型)
    类型用来表示当前对象所属的类型。比如:int、str、float等
    类型决定了对象有哪些功能
    通过type()函数查看对象的类型
    python是一门强类型的语言,对象一旦创建类型便不能修改

  • value(值)
    值就是对象中存储的数据
    对于有些对象值是可以改变的
    对象可以分成两大类,可变对象和不可变对象

    • 可变对象的值可以改变
    • 不可变对象的值不能改变,数字、字符串、布尔值等之前学的对象不可变(如123、‘hello’)

在这里插入图片描述

变量和对象
  • 对象并没有直接存储到变量中,在python中变量更像给对象起了一个别名,变量中存储的不是对象的值,而是对象的id(内存地址)
    当我们使用变量时,实际上就是在通过对象id查找对象

    a = 123
    在这里插入图片描述

b = a

a = 10
print(id(a))
b = a
print(b,id(b))

在这里插入图片描述

  • 变量中保存的对象,只有在为变量重新赋值时才会改变;变量和变量之间是相互独立的,修改一个变量不会影响另一个变量。
    a重新赋值
    在这里插入图片描述
6.类型转换
  • 所谓的类型转换,就是从一个类型的对象转换为其他对象
  • 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象

int()规则:

  • 布尔值: True -> 1 False -> 0
  • 浮点数:直接取整,省略小数点后的内容
  • 字符串:合法的整数字符串,直接转换为对应的数字
    如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: ‘11.5’
  • 对于其他不可转换为整型的对象,直接抛出异常 ValueError
# 类型转换的四个函数 int() float() str() bool()
# int() 可以用来将其他的对象转换为整型
a = True
print('a = ', a , type(a))
# 调用int()将a转换为整型
# int()函数不会对原来的变量产生影响,它是将对象转换为指定的类型并将其作为返回值返回
# 如果希望修改原来的变量,则需要对变量进行重新赋值
a = int(a)
print('a = ', a , type(a))

a = '123'
a = int(a)
print('a = ', a , type(a))

在这里插入图片描述

float() 和int()基本一致,不同的是它会将对象转换为浮点数
str() 可以将对象转换为字符串 True -->‘True’
bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值

  • 对于所有表示空性的对象都会转换为False(如:a = 0, a = ‘’, a = None),其余的转换为True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值