1.几个概念
1.1 表达式
表达式,是由数字、算术、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义的排列方法所得的组合
表达式就是一个类似于数学公式的东西
比如:1 +1 2* 2
1.2语句
一个语法上自成体系的单位,它由一个词或句法上有关联的一组词构成英语
在程序当中的语句一般使用是用来完成各种功能
例如: print() input() for xxx in yy :a = 5
1.3 程序
程序就是由一条一条的语句和一条一条的表达式组成
例如:考驾照 科目一——>科目二——>科目三——>科目四
1.4 函数
函数就是一种程序,专门用来完成特定功能。
函数长得形如:XXX()
函数的分类:
1.4.1 內建函数 由Python解释器提供的函数,可以在Python中直接调用
1.4.2 自定义函数 由程序员自主创建的函数 XXX()
打开Python官网Welcome to Python.org——>Documentation——>Python 3.x Docs——>Library Reference——>Built-in Functions(内置函数)
()代表的就是函数里面要传递的参数
*函数中可以没有参数,也可以传递多个参数,多个参数需要用逗号隔开
print('Hello World','钢铁侠',111)
>>>Hello World 钢铁侠 111
返回值 就是函数返回的结果 不是所有的函数都有返回值*
2.标识符
2.1 Python语言的组成部分
1.关键字 2.注释 3.标识符 4.变量和数值 5.运算符 6.语句 7.函数 8.序列
2.2关键字
就是Python的一些具有特殊功能的关键字
打开Python官网Welcome to Python.org——>Documentation——>Python 3.x Docs——>Language Reference——>identifiers and keyword(标识符和关键字)——>2.3.1 Keyword
import keyword
print(keyword.kwlist)
2.3 标识符
开发人员在开发当中自己定义的一些符合和名称 标识符一般定义 如 变量名、函数名…
组成 由26个英文字母大小写 数据0-9 符号_ $ @
2.3.1 标识符的规则
2.3.1.1标识符中可以包含字母、数字、_,但是不能使用数字作为开头
例如:name1 name_1 _name1 1name(不行)
2.3.1.2 Python当中不能使用关键字和保留字作为标识符
例如: for = 1(不行)
不建议Python的函数作为标识符作为标识符来命名
2.4 命名方式
小驼峰命名法: 第一个单词小写字母开始,第二个单词首字母大写
例如:myName aDog
大驼峰命名法:每一单词的首字母采用大写字母
例如:FirstName LastName
下划线命名法 _ : 例如 get_url buffer_size
最好要做到见名识意
3.数据类型
数据类型指的就是变量 的值的类型,也就是我们可以为变量赋哪些值
Java
数值
整数 所有整数 a = 1 b = 100 c = 999 int
c = 123_456_789(如果数值比较大,就可以用下划线来分隔)
小数 所有小数 a = 1.2 b = 6.66
s = 0.1 + 0.2
print(s)
>>>0.30000000000000004
0.30000000000000004 = 0.3
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)
>>>0.3
4.布尔和空值
4.1 布尔 只有2个值True False 逻辑判断
a = True
a = False
print(a)
>>>False
a = False
a = True
print(a)
>>>True
4.2 布尔值其实也属于整型 True相当于1 False相当于0
None 只有一个数值 也就是空值
>>> 1 + True
2
>>> 1 + False
1
>>> a = None
>>> print(a)
None
5.字符串(转义字符)
5.1 什么是字符串?
字符串就是由数字、字母、下划线组成的一串字符
>>> "I don't like money,I only love you!"
"I don't like money,I only love you!"
>>> 'Jerry love meizi'
'Jerry love meizi'
总结:用一对单引号或者一对双引号包裹的内容就是字符串 str
字符串的类型:
>>> 520
520
>>> type(520)
<class 'int'>
>>> '520'
'520'
>>> type('520')
<class 'str'>
注意:单引号和双引号不能混合使用,相同引号之间不能嵌套
>>> a = 'abc"
SyntaxError: EOL while scanning string literal
>>> 'What's up'
SyntaxError: invalid syntax
>>> "What's up!"
"What's up!"
转义字符:
’ 表示 ’
" 表示”
>>> 'What\' up'
"What' up"
\t 表示制表符
>>> s = '窈窕淑女,\t君子好逑'
>>> print(s)
窈窕淑女, 君子好逑
\n 表示换行符
>>> s ='窈窕淑女,\n君子好逑'
>>> print(s)
窈窕淑女,
君子好逑
\ \ : 表示反斜杠
r 表示原始字符串
>>> dos = "c:\news"
>>> print(dos)
c:
ews
>>> dos = 'c;\\news'
>>> print(dos)
c;\news
>>> dos = r'c:\news'
>>> print(dos)
c:\news
6.字符串(格式化字符串)
6.1长字符串
我们可以使用三重引号表示一个长字符串" " "
好处:三重引号可以换行,并且保留字符串中的格式
s = '''关关雎鸠,
在河之洲,
窈窕淑女,
君子好逑。'''
print(s)
>>>关关雎鸠,
在河之洲,
窈窕淑女,
君子好逑。
6.2 格式化字符串
字符串不能和其他类型进行加法运算,如果做了会出现异常。
1.拼串
2.参数来格式化信息
3.占位符的方式 :%s 字符串 %d 整数 %f 浮点数
4.格式化
>>> 6 + 6
12
>>> "6" + "6"
'66'
>>> 'Jerry'+'y'
'Jerryy'
>>> 6 + '6'
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
6 + '6'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> 6 + int("6")
12
6.2.1 拼串
s = 'Hello'
print('s = '+s)
>>>s = Hello
通常用逗号隔开,来表示拼串
s = 'Hello'
print('s = ',s)
>>>s = Hello
print('aaa','bbb','ccc')
>>>aaa bbb ccc
6.2.2 用参数来格式化信息
>>> 'I love %s'
'I love %s'
>>> 'I love %s'%'Jerry'
'I love Jerry'
>>> 'I love %s'%'Study'
'I love Study'
6.2.3 占位符的方式: %s 字符串 %d 整数 %f 浮点数
%s字符串:
>>> a = 'I love %s'
>>> a % 'Python'
'I love Python'
>>> a % 'logic'
'I love logic'
s = 's1 = %s,s2 = %s'%('Hello','World')
print(s)
>>>s1 = Hello,s2 = World
%f 浮点数
s1 = '钢铁侠'
s2 = '蜘蛛侠'
a = f'Hello {s1},{s2}'
print(a)
Hello 钢铁侠,蜘蛛侠
b = 'I like {0}'
a = b.format('python')
print(a)
I like python
str.format():这个是Python2.6开始以后新增的一种格式化字符串的函数,它增强了格式化字符串的一个功能。
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
format的一个例子
1
print ‘hello {0}’.format(‘world’)
会输出hello world
一 填充
1.通过位置来填充字符串
1
2
3
print’hello
{0} i am {1}’.format(‘Kevin’,‘Tom’) #
hello Kevin i am Tom
print’hello
{} i am {}’.format(‘Kevin’,‘Tom’) #
hello Kevin i am Tom
print’hello
{0} i am {1} . my name is {0}’.format(‘Kevin’,‘Tom’)#
hello Kevin i am Tom . my name is Kevin
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……
也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
2.通过key来填充
1
print ‘hello {name1} i am {name2}’.format(name1=‘Kevin’,name2=‘Tom’) # hello Kevin i am Tom
3.通过下标填充
1
2
3
names=[‘Kevin’,‘Tom’]
print’hello
{names[0]} i am {names[1]}’.format(names=names) #
hello Kevin i am Tom
print’hello
{0[0]} i am {0[1]}’.format(names) #
hello Kevin i am Tom
4.通过字典的key
1
2
names={‘name’:‘Kevin’,‘name2’:‘Tom’}
print ‘hello {names[name]} i am {names[name2]}’.format(names=names) # hello Kevin i am Tom
注意访问字典的key,不用引号的
5.通过对象的属性
1
2
3
4
5
classNames():
name1='Kevin'
name2='Tom'
print’hello
{names.name1} i am {names.name2}’.format(names=Names) #
hello Kevin i am Tom
6.使用魔法参数
1
2
3
args=[‘lu’]
kwargs = {‘name1’: ‘Kevin’, ‘name2’: ‘Tom’}
print ‘hello {name1} {} i am {name2}’.format(*args, **kwargs) # hello Kevin i am Tom
6.2.4 格式化
>>> d = "zhangsan %d age.%s age geng da"%(22,'lisi')
>>> print(d)
zhangsan 22 age.lisi age geng da
>>> w = "zhangsan {0}age.{1} age geng da"
>>> w.format(22,'lisi')
'zhangsan 22age.lisi age geng da'
需求:以4种格式化字符串的形式来实现‘521’ xxx嫁给我好吗?
girl = '女神'
print('521 '+girl+' 嫁给我好吗?') #拼串
print('521',girl,'嫁给我好吗?') #传达多个参数
print('521 %s 嫁给我好吗?'%girl) #占位符
print(f'521 {girl} 嫁给我好吗?') #格式化
>>>521 女神 嫁给我好吗?
521 女神 嫁给我好吗?
521 女神 嫁给我好吗?
521 女神 嫁给我好吗?
7.基本字符串的操作
7.1字符串的其他操作
7.1.1字符串的长度
‘12355625624562563233’
字符串长度:
>>> a = 'Jerry Python'
>>> len(a)
12
>>> len('I love you')
10
7.1.2 判断某一个字符是否在这个字符串中
7.1.3 求最大值和最小值:max(),min()
Ascii(美国信息交换标准代码)的大小比较:
7.1.4 分割字符 :split
分割字符串一般都是以空格,逗号和点来分割
>>> s = 'I love China'
>>> s.split("")
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
s.split("")
ValueError: empty separator
>>> s.split(" ")
['I', 'love', 'China']
>>> b = "www.baidu.com"
>>> b.split('.')
['www', 'baidu', 'com']
7.1.5 拼接字符串: join()
一般都是以“-”来拼接
>>> a = 'abc'
>>> '-'.join(a)
'a-b-c'
7.1.6 去空格:
1. strip():两边去空格
2. lstrip ():左边去空格
lstrip里面的l是字母“L”
3. rstrip():右边去空格
>>> a = ' Python '
>>> a
' Python '
>>> a.strip()
'Python'
>>> a.lstrip()
'Python '
>>> a.rstrip()
' Python'
7.1.7 字符串的大小写格式:
1. upper()全部大写
2. lower()全部小写
3. capitalize()首字母大写
4. isupper() 判断是不是大写:True或者False
isupper():在字母全部都是大写时才会判断为大写,
例如:JERRY(True) Jerry(False) jerrY(False) jerry(False) jeRry(False)
5. islower() 判断是不是小写:True或者False
islower():在字母全部都是小写时才会判断为小写
例如:jerry(True) JERRY(False) Jerry(False) jerrY(False) jeRry(False)
>>> a = "I Love China"
>>> a.upper()
'I LOVE CHINA'
>>> a.lower()
'i love china'
>>> c = 'jerry'
>>> c.capitalize()
'Jerry'
>>> c.islower()
True
>>> c.isupper()
False
8. 字符串(类型检查)
8.1类型检查:type()
a = '456'
b = 456
print(type(a))
print(type(b))
print(type(1))
print(type(1.6))
print(type(True))
print(type('钢铁侠'))
print(type(None))
>>><class 'str'>
<class 'int'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
<class 'NoneType'>
9.变量
变量:就是将不确定的数据进行存储
什么时候定义变量?
当数据不确定的时候,需要对数据进行存储的时候,我们为您就定义一个变量来完成动作。
name = ‘张三’
a = 2
xxxx a 5
xxxx a 10
xxxxx 100 102 106 1101
什么时变量?就是计算机内存中的一块区域,通俗的说变量就是给数据起个名字
>>> a = 3
>>> b = 3
>>> id(3)
1831431248
注意:两个对象相等和两个对象时同一个对象是两个概念
只要在运算过程中含有浮点数,那么它返回的一定是浮点数类型
>>> s1 = {'Jerry':'Python'}
>>> s1
{'Jerry': 'Python'}
>>> import copy
>>> s2 = copy.deepcopy(s1)
>>> s2
{'Jerry': 'Python'}
>>> s1 ==s2
True
>>> id(s1),id(s2)
(2244958654040, 2244959316296)
>>> a = 10
>>> b = 4
>>> c = 2
>>> a - b
6
>>> a + b
14
>>> a / b
2.5
>>> 1 + 2
3
>>> 1.0 + 2
3.0
>>> 1.0 + 3.0
4.0
>>> 1 * 2
2
>>> 1.0 * 2
2.0
>>> 1 * 2.0
2.0
>>> 1.0 * 2.0
2.0