03. Python语言的核心编程 · 第三章 计算机的基本数据类型

1. 所有计算机语法几个通识概念

1.1 表达式

  表达式是由数字、运算符、数字分组符号(括号)、自由变量和约束变量等能求得数值的有意义排列方法所得的组合。

  表达式特点:
    表达式一般仅仅用于计算一些结果,不会对程序产生 实质性的影响
    如果在交互模式中输入一个表达式,解释器会自动表达式的结果输出。

1.2 语句

  语句是一个语法上自成体系的单位,它由一个词句法上有关连的一组词构成。
  语句的执行一般会对程序产生一定的影响,在交互模式不一定会输出语句的执行结果

1.3 程序(program)

  程序就是由一条一条的语句一条一条的表达式构成的

1.4 函数(function)

  简单的说函数就是一种语句,函数的作用是专门用来完成 特定的功能

  函数的形状:xxx()

  函数的分类:
    1)内置函数 : 或者叫内建函数,就是由编程语言的语法规定存在的函数。这些函数,包含在编译器的运行时库中,程序员不必再单独书写代码实现它,只需要 调用 既可。参考链接
在这里插入图片描述
    2)自定义函数 : 由程序员 自主创建 的函数。

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

  函数的两个要素:
    1)参数
    2)返回值

  

2. 标识符

2.1 关键字

  Python语言一些具有特殊功能标识符,这就是所谓的关键字。关键字是Python语言 已经使用的了 ,所以 不允许 开发者自己定义和关键字相同的名字的标识符。
Python语言关键字查询方法:

>>> import keyword
>>> keyword.kwlist

  Python语言关键字汇总:
在这里插入图片描述

2.2 标识符概念

  2.2.1 标识符:开发人员在程序中自定义的一些符号和名称。标识符是 自己定义的 ,如 变量名 、函数名 等。
  标识符的组成:由26个英文字母大小写、数字 0-9 、符号 _ 和 $ 。

  2.2.2 标识符的命名规则
    1)标识符中可以使用 字母、数字、__ 作为开头,但是 绝对 绝对 绝对 不能使用 数字 来开头。
    例如
      name1 (正确)
      name_1 (正确)
      _ Name1(正确)
      1name (不正确)
    2)Python语言中不能使用 关键字保留字 来作为标识符。(详情参见上面的 2.1 关键字。)

  2.2.3 标识符的命名方式
    1)驼峰命名法:
      小驼峰式命名法: 第一个单词以小写字母开始,第二个单词的首字母大写;例如:myName、aDog。
      大驼峰式命名法: 每一个单字的首字母都采用大写字母;例如:FirstName、LastName。
    2)下划线命名法:顾名思义,就是以下划线开头的命名方式;例如:_ Name1 。
    不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词;比如 get_url buffer_size。

  

3. 基本数据类型

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

3.1 整数和小数

  整数:所有整数 例如 a = 1 b = 100 c =999 都是 int类型 ,我们称之为 整型
  如果传入的整数过长,我们可以用 _ 对输入的整数进行分割。参考实例:

a = 123_456_789
print(a)		# 123456789

  小数常量:所有小数 例如 a = 1.2 b=6.66 用 float类型 表示,我们称之为 浮点型

3.2 什么是 布尔值 和 空值

  布尔值(Boolean):这个类型的值只有2个,一个是 True ,一个是 False
  None常量:这个类型的值只有一个数值,就是None;也就是 空 值。
   特别提示 :0 、None 、‘  ’ 三个值的中文意思都是 没有 ,但是在编写代码时所代表的意义可是 完全!完全!!完全!!!不一样的 。具体怎么个不一样法,自己在操作的过程中再细细地体会,现在只需要先牢牢的记住就好。

  

4. 字符串

4.1 什么是字符串

  字符串主要就是表示一段文本信息。是由数字、字母、下划线组成的一串字符。

  在 Python语言 中用 一对双引号 或者 一对单引号 包裹的内容就是 字符串

  检查字符串值的类型 函数:type()

>>>type(520)
<class 'int'>
>>>type(5.20)
<class 'float'>
>>>type('520')
<class 'str'>

   注意:
    1)单引号和双引号不能混合使用;

>>>a = 'abc"
SyntaxError: EOL while scanning string literal

    2)相同引号之间不能相互嵌套。

a = 'what's your name'
print(a)			# SyntaxError: invalid syntax

4.2 转义字符

  转义字符是一种特殊字符常量。转义字符以反斜线" \ "开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 “转义” 字符。
  常用的转义字符:
    \t  表示 制表符
    \n  表示 换行符
    \\  表示 反斜杠 \
    \’  表示  ’
    \ ‘’ 表示 ‘’

4.3 长字符串

  长字符串又叫做 文档字符串 我们使用三重引号 ‘’‘xxxxxxxx’’’ 来表示一个长字符串。
  三重引号内的字符串可以换行,并且会保留字符串中的格式。

4.4 格式化字符串(补上代码操作代码,详见视频)

  方法1)拼串   +
    ‘+’ 运算只能在 同类型 间运算。整形(int) 之间的 ‘+’ 运算就是加法(求和)运算字符串(str) 之间的 ‘+’ 运算就是拼串;字符串(str) 不能够 和其他类型做 ‘+’ 运算。如果做了,会报 TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’  这个错误;不同类型之间想做 ‘+’ 运算必须要转换为同一类型。

	>>> 6 + 6
	12
	>>> 'a' + 'b'
	'ab'
	>>> 6 + int("6")
	12
	>>> 6 + "6"
	TypeError: unsupported operand type(s) for +: 'int' and 'str'
s = 'Hello'
print('s =' + s)		#  s =Hello

  方法2)传参
   通过函数之间传递的参数来格式化我们的信息。

s = 'Hello'
print('s =',s)		#  s = Hello

  方法3)占位符 %

    %f  浮点数(float)占位

    %d 整数(int)占位

	>>> 'i %d years old' % '28'
	i 28 years old

    %s 字符串占位

	>>> 'i love %s' % 'study'
	i love study
	>>> a = 'i love %s'
	>>> a % 'python'
	i love python
	>>> a % 'JAVA'
	i love JAVA
s = 's = %s' % 'Hello"
print(s)		#  s = Hello
s = 's = %s , s2 = %s' % ('Hello')
print(s)		#  TypeError: not enough arguments for format string
s = 's = %s , s2 = %s' % ('Hello','World')
print(s)		#  s = Hello , s2 = World

  方法4)格式化字符串方式  f’str.{变量}’ / str.format()

s1 = '钢铁侠'
s2 = '蜘蛛侠'

a = f'Hello {s1},{s2}'
print(a)		#  Hello 钢铁侠,蜘蛛侠
s = 'i like {a}'
a = s.format('python')
print(a)		#  KeyError: 'a'

s = 'i like {}'
a = s.format('python')
print(a)		#  i like python

s = 'i like {0}'
a = s.format('python')
print(a)		#  i like python

s = 'i like {1}'
a = s.format('python')
print(a)		#  IndexError: Replacement index 1 out of range for positional args tuple

  从 Python 2.6 开始(注意:不是 Python 3.6,是 Python 2.6 ),新增了一种格式化字符串函数:str.format() 。这个方法增强了函数格式化的一种功能,语法的意思是:通过 ‘{ }’ 代替 ‘%’ ,format 的 () 里面 不限制 衔接参数的类型

a = f'语句 {s}'
print(a)		#  NameError: name 's' is not defined

s = 'i like {0},{1}'
a = s.format('p','b')
print(a)		# i like p,b 

s = 'i like {1},{2}'
a = s.format('p','b')
print(a)		# IndexError: Replacement index 2 out of range for positional args tuple

s = 'i like {},{}'
a = s.format('p','b')
print(a)		# i like p,b

  通过以上八个例子让我们明白 f’str.{变量}’ 和 str.format()都该在什么场景下使用。
  如果 没有变量值(如 方法4 最初例子里的 s1 和 s2),就使用函数 str.format() 向 { } 里 传递数字 或者 不传(直接空着)
  如果 有变量值,那就不建议使用 str.format() 方法,直接使用 f’str.{变量1},{变量2}…’ 。
  在这里 再次着重提醒:方法4 里使用的 “ f不是关键字,它就是一种 格式化字符串 的方式的一种语法

4.5 字符串的其他操作

  len() 字符串的长度

a = 'I love python'
print(len(a))		# 13

  max() 最大值

a = 'I love python'
print(max(a))		# y

  min() 最小值

a = 'Ilovepython'
print(min(a))		# I

  split() 分割字符串

str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );       		# 以空格为分隔符,包含 \n
		# ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']

print str.split(' ', 1 ); 		# 以空格为分隔符,分隔成两个
		# ['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

  join() 拼接字符串

str = "-";
seq = ("a", "b", "c"); 			# 字符串序列
print str.join( seq );			# a-b-c

  字符串去空格操作:

  s.strip() 左右两边去空格

str = "000000032100Runoob001230000000"; 
print str.strip( '0' );		# 去除首尾字符 0		32100Runoob00123
 
str2 = "   Runoob      ";
print str2.strip();			# 去除首尾空格		Runoob

  s.lstrip() 去左边空格

str = "     this is string example....wow!!!     ";
print str.lstrip();			# this is string example....wow!!!     

str = "88888888this is string example....wow!!!8888888";
print str.lstrip('8');		# this is string example....wow!!!8888888

  s.rstrip() 去右边空格

str = "     this is string example....wow!!!     ";
print str.rstrip();			#      this is string example....wow!!!

str = "88888888this is string example....wow!!!8888888";
print str.rstrip('8');		# 88888888this is string example....wow!!!

  字符串大小写操作:

  s.upper() 全部大写

str = "this is string example....wow!!!";

print "str.upper() : ", str.upper()		# str.upper() :  THIS IS STRING EXAMPLE....WOW!!!

  s.lower() 全部消息

str = "THIS IS STRING EXAMPLE....WOW!!!";

print str.lower();		# this is string example....wow!!!

  s.isupper() 判断是不是大写

str = "THIS IS STRING EXAMPLE....WOW!!!"; 
print str.isupper();		# True

str = "THIS is string example....wow!!!";
print str.isupper();		# False

  s.islower() 判断是不是小写

str = "THIS is string example....wow!!!"; 
print str.islower();		# False

str = "this is string example....wow!!!";
print str.islower();		# True

  更多不明函数,推荐通过本链接进行检索

  Pyton工具书:The Python Tutorial — Python 3.7.4 documentation

5. 变量

5.1 变量的概念?

  变量是计算机内存中的一块区域,存储规定范围内的,当中的可以改变的,通俗的说变量就是给一块数据起个名字
  变量命名规则:
    1)变量名由字母、数字、下划线组成;
    2)老生常谈: 数字不能开头
    3)不能使用关键字;
  对 变量的命名 规则,总结成一句话就是:要符合标识符的命名规范!
  插入一个注意两个对象相等两个对象是同一个对象两个概念。 请注意,你没看错,就是 两个概念。 请注意我们的每一个用词,这是 数学 不是 哲学

s1 = {'Jiang':'Python'}
import copy
s2 = copy.deepcopy(s1)
print(s2) # {'Jiang': 'Python'}

print(id(s1),id(s2))
print(s1==s2)

5.2 变量的运算

在这里插入图片描述在这里插入图片描述
  变量的运算就是正常的 四则运算 ,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型

  
  

课后作业

  a,b = 6,8

  我想让 a=8,b=6 怎么才能实现?
  
  
  
  

参考答案

a,b = 6,8

a,b = b,a						# 方案一(个人理解:这个方法只适合在练习时使用,不太适合在程序编写时使用)

tmpe = a						# 方案二(对  变量  的灵活使用)
a = b
b = tmpe

print('a = %d, b = %d'%(b,a))	# 方案三(对  占位符  的灵活使用)

b = b - a						# 方案四(对  算术运算符  的灵活使用)
a = b + a
b = a - b

print(a,b)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值