python第三课
- Python基础
- Python语法
- 1. ⼏个概念
- 1.1 表达式
- 1.2 语句
- 1.3程序(program)
- 1.4函数(function)
- 2.标识符
- 2.1 关键字
- 2.2 标识符概念
- 变量
- 变量
- 变量的概念?
- 基本数据类型
- 整数和小数
- 基本数据类型
- 整数和⼩数
- 布尔值和空值
- 布尔值和空值
- 字符串
- 字符串
- 什么是字符串
- 转义字符
- Python字符串运算符
- ⻓字符串
- 格式化字符串
- 字符串的其他操作
- python的字符串内建函数
- 代码作业
Python基础
Python语法
1. ⼏个概念
1.1 表达式
- 表达式,是由数字、算符、数字分组符号(括号)、⾃由变量和约束变量等
以能求得数值的有意义排列⽅法所得的组合 - 表达式特点
- 表达式⼀般仅仅⽤于计算⼀些结果,不会对程序产⽣实质性的影响
- 如果在交互模式中输⼊⼀个表达式,解释器会⾃动将表达式的结果输出
1.2 语句
- ⼀个语法上⾃成体系的单位,它由⼀个词或句法上有关连的⼀组词构成
- 语句的执⾏⼀般会对程序产⽣⼀定的影响,在交互模式中不⼀定会输出语句的
执⾏结果
1.3程序(program)
- 程序就是由⼀条⼀条的语句和⼀条⼀条的表达式构成的。
1.4函数(function)
- 函数就是⼀种语句,函数专⻔⽤来完成特定的功能
- 函数⻓的形如:xxx()
- 函数的分类:
- 内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含
在编译器的运⾏时库中,程序员不⽐单独书写代码实现它,只需要调⽤既
可。 - ⾃定义函数 : 由程序员⾃主的创建的函数 当我们需要完成某个功能时,就可以去调⽤内置函数,或者⾃定义函数
- 函数的2个要素
- 参数
- 返回值
2.标识符
2.1 关键字
- python⼀些具有特殊功能的标识符,这就是所谓的关键字关键字,是python
已经使⽤的了,所以不允许开发者⾃⼰定义和关键字相同的名字的标识符
False None True and as
assert async await break class
continue def del elif else
except finally for from global
if import in is lambda
nonlocal not or pass raise
return try while with yield
2.2 标识符概念
- 开发⼈员在程序中⾃定义的⼀些符号和名称。标识符是⾃⼰定义的,如变量名、函数名等
- 组成:由26个英⽂字⺟⼤⼩写,数字 0-9 符号 _$
- 标识符的规则:
- 1.标识符中可以包含字⺟、数字、_,但是不能使⽤数字开头 例如:
name1 name_1 _name1 1name(不⾏) - 2.Python中不能使⽤关键字和保留字来作为标识符
- 命名⽅式
- 驼峰命名法
- ⼩驼峰式命名法: 第⼀个单词以⼩写字⺟开始;第⼆个单词的⾸字⺟⼤
写,例如:myName、aDog
⼤驼峰式命名法: 每⼀个单字的⾸字⺟都采⽤⼤写字⺟,例如:
FirstName、LastName - 下划线命名法
不过在程序员中还有⼀种命名法⽐较流⾏,就是⽤下划线“_”来连接所有
的单词,⽐如 get_url buffer_size
变量
变量
变量的概念?
- 变量是计算机内存中的⼀块区域,存储规定范围内的值,值 可以改变,通俗
的说变量就是给数据起个名字。
- id 内存地址
- type 类型
- value 值
- 变量命名规则
- 变量名由字⺟、数字、下划线组成要符合标识符的命名规范
- 数字不能开头
- 不能使⽤关键字
- 注意 : 两个对象相等和两个对象是同⼀个对象是两个概念
基本数据类型
整数和小数
基本数据类型
- 数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值
整数和⼩数
- 整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
- ⼩数常量 : 所有⼩数 例如 a = 1.2 b=6.66 ⽤float类型表示
布尔值和空值
布尔值和空值
- 布尔: 只有2个值⼀个是True ⼀个是False
- **None常量:**只有⼀个数值就是None 也就是空值
字符串
字符串
什么是字符串
- 字符串是由数字、字⺟、下划线组成的⼀串字符
- 注意
- 单引号或双引号不能混合使⽤
- Python中⽤⼀对双引号或者⼀对单引号包裹的内容就是字符串
转义字符
- 转义字符是⼀种特殊的字符常量。转义字符以反斜线""开头,后跟⼀个或⼏个
字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符 - 总结
- \ (在行尾时)表示续行符
- \t 表示制表符 一个缩进的距离,相当于四个空格
- \n 表示换⾏符
- \ \表示反斜杠
- \’ 表示 ’
- \ ‘’ 表示 ‘’
- \b 退格
Python字符串运算符
- 下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”
操作符 | 描述 | 实例 |
+ | 字符串连接 |
|
* | 重复输出字符串 |
|
[] | 通过索引取得字符串中字符 |
|
[:] | 截取字符串中的一部份 |
|
in | 成员运算符 - 如果字符串中包含给定的字符返回 True |
|
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True |
|
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照 字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以 大小写)以外,与普通字符串有着几乎完全相同的语法。 |
|
⻓字符串
- ⻓字符串 ⼜叫做⽂档字符串 我们使⽤三重引号来表示⼀个⻓字符串’’’ ‘’’
- 三重引号可以换⾏,并且会保留字符串中的格式
格式化字符串
- 第⼀种格式化字符串 拼串
- 第⼆种格式化字符串 参数传递
- 第三种格式化字符串 占位符
- %s 格式化字符串
- %f 格式化浮点数字,可指定小数点后的精度
- %d 格式化整数
- %c 格式化字符及其ASCII码
- %u 格式化无符号整型
- %o 格式化无符号八进制数
- %x 格式化无符号十六进制数
- %X 格式化无符号十六进制数(大写)
- %e 用科学计数法格式化浮点数
- %E 作用同%e,用科学计数法格式化浮点数
- %g %f和%e的简写
- %G %F 和 %E 的简写
- %p 用十六进制数格式化变量的地址
- 第四种格式化字符串 f’{变量}’
- str.format ()
字符串的其他操作
- len() 字符串的⻓度
- max() 最⼤值
- min() 最⼩值
- str.split()分割字符串
- str.join()拼接字符串
- str.find()查找字符串
- str.replace() 替换字符串
- str.partition() 把字符串分割为三部分
- 去空格
- s.strip() 左右两边去空格
- s.lstrip() 去左边空格
- s.rstrip() 去右边空格
- 字符串⼤⼩写
- s.upper() 全部⼤写
- s.lower() 全部⼩写
- s.isupper() 判断是不是⼤写
- s.islower() 判断是不是⼩写
python的字符串内建函数
这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。
方法 | 描述 |
把字符串的第一个字符大写 | |
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 | |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 | |
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 ‘ignore’ 或 者’replace’ | |
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ | |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. | |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。 | |
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 | |
格式化字符串 | |
跟find()方法一样,只不过如果str不在 string中会报一个异常. | |
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False | |
如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False | |
如果 string 只包含十进制数字则返回 True 否则返回 False. | |
如果 string 只包含数字则返回 True 否则返回 False. | |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False | |
如果 string 中只包含数字字符,则返回 True,否则返回 False | |
如果 string 中只包含空格,则返回 True,否则返回 False. | |
如果 string 是标题化的(见 title())则返回 True,否则返回 False | |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False | |
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 | |
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 | |
转换 string 中所有大写字符为小写. | |
截掉 string 左边的空格 | |
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 | |
返回字符串 str 中最大的字母。 | |
返回字符串 str 中最小的字母。 | |
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string. | |
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次. | |
类似于 find() 函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。 | |
类似于 index(),不过是从右边开始. | |
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 | |
类似于 partition()函数,不过是从右边开始查找 | |
删除 string 字符串末尾的空格. | |
以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串 | |
string.splitlines(keepends]) | 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. | |
[string.strip(obj]) | 在 string 上执行 lstrip()和 rstrip() |
翻转 string 中的大小写 | |
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) | |
根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中 | |
转换 string 中的小写字母为大写 | |
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0 |
代码作业
#!/usr/bin/env python
# -- coding: utf-8 --
# @Time : 2021/4/15 22:30
# @Author : SJK
# @File : demo.py
# @Software: PyCharm
#第一题:a,b = 6,8 ,我想让a=8,b=6我该怎么办?用2种方法实现
a = 6
b = 8
#方法一
a,b = b,a
print(a,b)
#方法二
c = a
a = b
b = c
print(a,b)
#第二题:完成字符串的逆序及统计
# 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
# 打印出字符串长度
# 使用切片逆序打印出字符串
def main(strA):
if len(strA) > 30:
main(input("您输入的字数超过30个字符,请重新输入:"))
else:
print('您输入的字符串是:{}'.format(strA))
print(f'您输入了{len(strA)}个字符串')
print('您所输入的字符串的逆序是:%s' % strA[::-1])
main(input("请输入:"))