Python基础
Python 语法
几个概念
表达式
- 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
- 表达式特点
1.表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响。
2.如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
语句
- 一个语法上自成体系的单位,它由一个词或句法上有关联的一组词构成
- 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果
程序(program)
- 程序就是由一条一条的语句和一条一条的表达式构成的
函数(funcktion)
- 函数就是一种语句,函数专门用来完成特定的功能
- 函数形如:def xxx()
- 函数的分类:
1.内置函数:或者内建函数,就是由语法规定存在的函数,这些函数包含在编译器的运行库中,程序员不必单独书写代码实现它,只需要调用即可。
2.自定义函数:由程序员自主创建的函数,当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数 - 函数的2个要素
1.参数
2.返回值 - 占位命令的使用:当一行代码写完之后按下回车,如果跳到下一行的时候出现了缩进,说明这里必须要写一个代码,否则会报错,不需要写代码的话可以用一个pass代替。
标识符
关键字
- python一些具有特殊功能的标识符,这就是所谓的关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
标识符概念
- 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名、函数名等
- 组成:由26个英文字母大小写,数字0-9,符号_$
- 标识符的规则:
1.标识符中可以包含字母、数字、_,但是不能使用数字开头,例如:name1,name_1_name1,1name(不行)
2.Python中不能使用关键字和保留字来作为标识符 - 命名方式
1.驼峰命名法
(1)小驼峰式命名法:第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
(2)大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
2.下划线命名法
在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size
变量
变量的概念
- 变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字
- 变量命名规则
1.变量名由字母、数字、下划线组成,要符合标识符的命名规范
2.数字不能开头
3.不能使用关键字 - 注意:两个对象相等和两个对象是同一个对象是两个概念
以下代码的运行结果表明:两个数组相等,但是不是同一个数组
d=[1,2,3]
c=[1,2,3]
print(id(c),id(d))
print(d is c)
print(d == c)
以下代码的运行结果表明,python中的整数有一个固定的内存地址
a = 1
b = 1
print(id(a),id(b))
变量的运算
- 变量的运算就是正常的四则运算,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型。
字符串
什么是字符串
- 字符串是由数字、字母、下划线组成的一串字符
- 注意
1.单引号或双引号不能混合使用
2.Python中用一对双引号或者一对单引号包裹的内容就是字符串
转义字符
- 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
- \t表示制表符
- \n表示换行符
- \\表示反斜杠
- \‘表示’
- \“表示”
长字符串
- 长字符串又叫做文档字符串,我们使用三重引号来表示一个长字符串’’’ ‘’’
- 三重引号可以换行,并且会保留字符串中的格式
格式化字符串
即通过将字符串格式化,从而改变字符串不可改变的属性,将其中的内容改变
- 拼串
- 参数传递
- 占位符
1.%s字符串占位
2.%f浮点数占位
3.%d整数占位
- f’{变量}’
- str.format ()
字符串的其他操作
-
len()求字符串的长度
-
max()最大值
-
min()最小值
-
split()分割字符串
-
join()拼接字符串
-
find()查找字符串
-
replace()替换字符串
-
partition()把字符串分割为三部分
-
去空格
- s.strip()左右两边去空格
- s.lstrip()
- s.rstrip()
-
字符串大小写
- s.upper()全部大写
- s.lower()全部小写
- s.isupper()判断是不是大写
- s.islower()判断是不是小写
-
字符串的切片(在内存当中,数据是连续存储的数据类型,就可以切片),语法为:变量[起始位置:结束位置:步长](为左闭右开区间),若取的字符顺序为从右往左,则起始位置为-1,从右往左依次递减,步长前应加负号,若不写步长,则步长默认为1,从右往左取字符时会出现取不到字符的情况。
运算符
运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
算术运算符
- 加法运算符“+”
- 减法运算符”-“
- 乘法运算符”*“
- 除法运算符”/“
- 整除”//“,只会保留计算后的整数位,总会返回一个整型
- ”%“取余,求两个数相除的余数
- ”**“幂运算,求一个值的几次幂
赋值运算符
赋值运算符的特殊写法x= x+3其实是和x+=3是一样的,同理,-=,*=,//=,%=均可这样理解
比较运算符
- 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- ” >“比较左侧值是否大于右侧值
- ”>=“ 比较左侧的值是否大于或等于右侧的值
- ” < “比较左侧值是否小于右侧值
- ”<=“ 比较左侧的值是否小于或等于右侧的值
- 特殊的比较方式:
1.”==“比较两个对象的值是否相等
2.”!=“比较两个对象是否不相等
3.”is“比较两个对象是否是一个对象
4.”is not“比较两个对象是否不是同一个对象,比较的是对象的id
逻辑运算符
not 逻辑非
- not可以对符号右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True(0,空串‘’,None还有一些表示空性的值会转换为False,其余剩下的所有的值都是True)
逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
逻辑或
- 或运算两个值中只要有一个True,就会返回True
非布尔值的与或运算
-
当我们对非布尔值进行与或运算时,Python会将其当作布尔值运算,最终会返回原值
-
非布尔值与运算的规则
1.与运算是找False的,如果第一个值是False,则不看第二个值,直接返回第一个值;如果第一个值是True,则不看第二个值,直接返回第二个值
2.或运算找True,如果第一个值是True,则不看第二个值,直接返回第一个值,如果第一个值是False,则不看第二个值,直接返回第二个值
条件运算符(三元运算符)
- 条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
运算符的优先级
作业
- a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
第一种方法(交换内存地址)
import ctypes
a = 6
b = 8
c = id(a)
d = id(b)
a=ctypes.cast(d,ctypes.py_object).value
b=ctypes.cast(c,ctypes.py_object).value
print(a,b)
第二种方法(直接交换值)
a=6
b=8
c=b
b=a
a=c
print(a,b)
- 完成字符串的逆序以及统计
• 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
• 打印出字符串长度
• 使用切片逆序打印出字符串
print ('请输入一串长度小于等于31的字符')
str1 =input()
b=len(str1)
if b<32:
print('字符串的长度为:%s'% b)
print('逆序打印字符串:{}'.format(str1[::-1]))
else:
print('字符串长度大于31,请重新输入')
3.以四种格式化字符串的方式来实现666 xxx
4.现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值