1. 所有计算机语法几个通识概念
1.1 表达式
表达式
是由数字、运算符、数字分组符号(括号)、自由变量和约束变量等
以
能求得数值的
有意义排列方法
所得的组合。
表达式特点:
表达式一般
仅仅用于
计算一些结果,不会对程序产生实质性的影响;
如果在交互模式中输入一个表达式,解释器会
自动
将
表达式的结果
输出。
1.2 语句
语句
是一个语法上自成体系的单位,它由
一个词
或
句法
上有关连的一组词构成。
语句的执行一般会对程序产生
一定的影响
,在
交互模式
中
不一定会
输出语句的
执行结果
。
1.3 程序(program)
程序
就是由
一条一条的语句
和
一条一条的表达式
构成的
。
1.4 函数(function)
简单的说函数就是
一种语句
,函数的作用是专门用来完成
特定的功能
。
函数的形状:xxx()
函数的分类:
1)
内置
函数 : 或者叫
内建函数
,就是由编程语言的语法规定存在的函数。这些函数,包含在编译器的运行时库中,程序员不必再单独书写代码实现它,只需要
调用
既可。
2)
自定义
函数 : 由程序员
自主创建
的函数。
当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数。
函数的两个要素:
1)参数
2)返回值
2. 标识符
2.1 关键字
Python语言一些具有
特殊功能
的
标识符
,这就是所谓的
关键字
。关键字是Python语言
已经使用的了
,所以
不允许
开发者自己定义和关键字相同的名字的标识符。
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 = 1.2 b=6.66 用
float类型
表示,我们称之为
浮点型
。
3.2 什么是 布尔值 和 空值
布尔值(Boolean):这个类型的值只有
2个
,一个是
True
,一个是
False
。
None常量:这个类型的值只有
一个数值
,就是None;也就是 空 值。
特别提示
:0 、None 、‘ ’ 三个值的
中文意思
都是
没有
,但是在编写代码时所代表的意义可是
完全!完全!!完全!!!不一样的
。具体怎么个不一样法,自己在操作的过程中再细细地体会,现在只需要先
牢牢的
记住就好。
4. 字符串
4.1 什么是字符串
字符串
主要就是表示一段文本信息。是由数字、字母、下划线组成的一串字符。
检查字符串值的类型 函数:
type()
>>>type(520)
>>>type(5.20)
>>>type('520')
注意:
1)单引号和双引号不能混合使用;
>>>a = 'abc"
SyntaxError: EOL while scanning string literal
2)在 Python语言 中用一对双引号或者一对单引号包裹的内容
就是字符串
。
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
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']
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );# a-b-c
字符串去空格操作:
str = "000000032100Runoob001230000000";
print str.strip( '0' );# 去除首尾字符 032100Runoob00123
str2 = " Runoob ";
print str2.strip();# 去除首尾空格Runoob
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
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!!!
字符串大小写操作:
str = "this is string example....wow!!!";
print "str.upper() : ", str.upper()# str.upper() : THIS IS STRING EXAMPLE....WOW!!!
str = "THIS IS STRING EXAMPLE....WOW!!!";
print str.lower();# this is string example....wow!!!
str = "THIS IS STRING EXAMPLE....WOW!!!";
print str.isupper();# True
str = "THIS is string example....wow!!!";
print str.isupper();# False
str = "THIS is string example....wow!!!";
print str.islower();# False
str = "this is string example....wow!!!";
print str.islower();# True
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)