Python语言程序设计重点
知识点及例题
1.变量名命名规则
1)首字母必须是字母或者下划线;
2)其余字符可以是字母、下划线或者是数字;
3)区分大小写。
例:pi、PI、_cat
2.基本运算符的用法和运算结果
1)算术运算符:包括加、减、乘、除和求余数等。是最基础的运算。
运算符 | 功能 | 举例 |
---|---|---|
** | 乘方 | 3**2结果是9 |
+ | 正号(一般省略不写,单目运算符) | +5即5 |
- | 负号(单目运算符) | -5 |
* | 乘法 | 3*2结果是6 |
/ | 除法(真正的除法) | 3/2和3.0/2.0结果都是1.5 |
// | 整除(地板除) | 5//2结果是2,结果类型是整形;5.9//2结果是2.0,结果类型是浮点型 |
% | 取余 | 5%2结果是1 |
+ | 加法 | 3+2结果是5 |
- | 减法 | 4-3结果是1 |
优先级:**> +-(正、负号)> *、/、//、%> +、-(加、减号)。(可以在外面加上圆括号提升优先级)
2)位运算符:只适用于整数。就是按整数的二进制位进行运算。
运算符 | 功能 | 举例 |
---|---|---|
~ | 取反(按位取反) | ~1结果为-2 |
<< | 左移 | 16<<2结果是64 |
>> | 右移 | 16>>2结果是4 |
& | 与 | 64&15结果是0 |
(竖线) | 或 | 64(竖线)15结果是79 |
^ | 异或 | 64^14结果是78 |
3)关系运算符:包括大于、小于和等于等。用于比较两个对象的大小。
运算符 | 功能 | 举例 |
---|---|---|
< | 小于 | 5<3结果是False |
> | 大于 | 5>3结果是True |
<= | 小于等于 | 2.4<=8.7结果是True |
>= | 大于等于 | 2.4>=8.7结果是False |
== | 等于 | 2==2结果是True |
!= | 不等于 | 2!=3结果是True |
关系运算符的运算顺序是从左往右,结果是布尔型值True或False。可以对数值进行比较,也可以对字符串进行比较。数值比较时按值的大小进行比较,字符串的比较则是按ASCII码值的大小进行比较,特别是字符数超过1时,要按照关系运算符左右两边的字符串从第1个字符开始依次对对应位置的字符进行比较。
特别地,Python中可以用“3<4<7”表示数学中的联系不等式。
4)逻辑运算符:用于条件比较复杂的情况。
运算符 | 功能 | 举例 |
---|---|---|
not | 非 | True结果是False |
and | 与 | True and False结果是False |
or | 或 | True or False结果是True |
结果都是布尔型值True或False。
优先级:not>and>or。
提示:逻辑运算有一个称之为短路逻辑的特性:逻辑运算符的第2个操作数有时会被“短路”,实际这是为了避免无用地执行代码。
优先级:算术运算符>位运算符>关系运算符>逻辑运算符,但按位取反运算符“~”的优先级位于算术运算符的正负号“+、-”和乘方“**”之间。
3.控制结构有几种?break和continue的用法
1)顺序结构:是最简单的算法结构,算法中列出的操作步骤是顺序执行的,操作的排列顺序与执行顺序一致,每个操作能且仅能被执行一次。
2)选择结构:是根据条件判断的结果控制不同分支执行的算法结构,也称为条件结构。
①if语句
if 表达式:
语句序列
执行时先计算表达式的值,若结果为True,则执行内嵌语句序列;否则,不执行任何语句。这种形式称为单分支结构。
②else子句
if 表达式:
语句序列1
else:
语句序列2
执行时先计算表达式的值,若结果为True,则执行语句序列1;否则,执行语句序列2。这种形式称为两路分支结构。
提示:if-else两路分支结构中,else必须与if对齐,并且它们所在语句的后面必须带上冒号。
在Python中也可以用专门的条件表达式(也称三元运算符)来实现。
x if c else y
执行过程为先计算表达式c(条件),若条件为真,则返回x(正确);否则,返回y(错误)。
注意:条件表达式在Python的所有运算符中优先级最低。
③elif子句
if 表达式1:
语句序列1
elif 表达式2:
语句序列2
elif 表达式2:
语句序列2
······
elif 表达式N-1:
语句序列N-1
else:
语句序列N
elif是“else if”的缩写。执行时先计算表达式1的值,若结果为True,则执行语句序列1;否则,计算表达式2,若结果为True,则执行语句序列2,以此类推,若表达式1至表达式N-1的计算结果都为False,则执行else部分的语句序列N。这种形式称为多分支结构。
④嵌套的if语句
if 表达式1:
if 表达式2:
语句序列1
else:
语句序列2
else:
if 表达式3:
语句序列3
else:
语句序列4
注意:嵌套的if结构要特别注意else与if的匹配,Python中基于缩进匹配if和else。
3)循环结构:是满足一个指定的条件,每次使用不同的数据对算法中的计算或处理步骤完全相同的部分重复计算若干次的算法结构,也成为重复结构。
①while语句
while 表达式:
语句序列
执行时计算(条件)表达式的值,当给定的条件成立,即表达式的结果为True时,执行语句序列(循环体),继续判断表达式的值是否为True,若是,则继续执行循环体,如此周而复始,直到表达式的值为False或发生异常时停止循环的执行。
注意点:
Ⅰwhile语句是先判断再执行,所以循环体有可能一次也不执行。
Ⅱ循环体中需要包含能改变循环变量值的语句,否则,若表达式的结果始终是True,则会造成死循环。
Ⅲ要注意语句序列的对齐, while语句只执行其后一条或一组同一层次的语句。
②for语句
for 变量 in 可迭代对象:
语句序列
执行时变量取可迭代对象中的一个值,执行语句序列,再取下一个值1,继续执行语句序列。
③嵌套循环
一个循环语句的循环体也可以是另一个循环语句,内层循环语句的循环体还可以是一个循环语句。这种一个循环结构的循环体内包含另一个或多个循环结构被称为嵌套循环,也称为多重循环,其嵌套层数视问题复杂程度而定。while语句和 for语句可以嵌套自身语句结构,也可以相互嵌套,可以呈现各种复杂的形式。
④break,continue语句
Ⅰbreak语句终止当前循环,转而执行循环之后的语句。
Ⅱcontinue用在while循环和for循环中,用来跳过循环体内的continue后面的语句,并开始新的一轮循环。
⑤循环结构中的else子句
else子句还可以在while语句和for语句中使用,使用时else子句放在while和for语句的下面,如果循环是从正常出口(即while后的表达式为False时或for语句后面的迭代正常结束时)结束退出的,则执行else子句;若非正常迭代结束退出(如因为执行了break语句而提前退出循环),则不执行else子句。
⑥特殊循环——列表结束
Python中有一种特殊的循坏,即通过for语句结合if语句,利用其他列表动态生成新列表,这种特殊的轻量级循环称为列表解析。
[表达式 for 表达式1 in 序列1
for 表达式2 in 序列2
···
for 表达式N in 序列N
if 条件
]
列表解析中的多个for语句相当于for结构中的嵌套使用。
4.支持的数据结构有哪些种类,其使用特征分别是什么(映射?列表···)?注意类型的可变可不变
1)基本类型
①整型(int)
注:在Python 3.x中,整型不再严格区分int和long(长整型)。
②布尔型(bool):布尔型是整型的子类,只有True和False两个值(注意大小写区别)。
③浮点型(float):浮点型类似于数学中的实数。
④复数型(complex):复数表示成“实数+虚数”的形式,其中虚数部分用“j”表示(j是虚数,j*j=-1),虚数部分必须有“j”。特别地,虚数部分“0j”前面的“0”不能省略。
提示:复数可以分离实数部分和虚数部分,imag属性返回虚数部分,real属性返回实数部分。复数的共轭可以用conjugate()方法返回。
2)序列类型
①字符串:字符串是用引号引起来的字符集合。在Python中可以使用单引号、双引号、三引号(三个单引号)表示字符串。
序列通过索引来访问元素,索引值从0开始。
除了利用索引值访问单个字符外,还可以利用切片操作进行多个字符的访问。
②列表
其为可变容器。
③元组
其和列表有很多相似的地方。但最大的区别在于元组是不可变的,也就是说,元组中的元素值是不能改变的,因此有很多适用于列表的函数/方法都不能用于元组。
④range对象:Python中使用range()函数生成一个不可变的整数序列。常常用在for循环中。
3)字典
字典是Python中唯一的一种映射类型。字典也是容器,它能存储多个元素,每一个元素都由一个键和一个值构成的键值对组成。字典使用不可变的对象作为键,常见的是用字符串作为键去索引一个值,值的数据类型比较多样化,可以是任意类型的Python对象。
字典用大括号“{}”表识。
但与序列类型使用数值索引访问元素不同。字典通过键来访问值。
*注意:由于Python是一种强类型的语言,所以在运算中变量类型不能自动转换,因此表达式“1+'2'”运算时会产生TypeError异常。
5.Python关键词用法
关键词 | ||||
---|---|---|---|---|
False | None | True | and | as |
assert | break | class | continue | def |
del | elif | else | except | finally |
for | from | global | except | if |
import | in | is | lambda | nonlocal |
not | or | pass | raise | return |
try | while | with | yield |
6.for range的用法
循环语句——for 和range的用法:https://blog.csdn.net/weixin_42213622/article/details/84331884
7.常用转义字符的功能,如\n,\t
以反斜杠“\”开头紧跟转义字符。
字符 | 说明 |
---|---|
\0 | 空字符 |
\t | 横向制表符 |
\n | 换行 |
\r | 回车 |
" | 双引号 |
' | 单引号 |
\ | 反斜杠 |
\(在行尾时) | 续行符 |
\ooo | 值为八进制数ooo的字符 |
\xhh | 值为十六进制数hh的字符 |
8.文件的使用
1)文件的打开和关闭
①文件的打开
②文件的关闭**
2)文件的基本操作
①文件的读写
②文件的定位
③文件的其它操作
9.程序中缩进的作用
关于 python 的缩进:https://blog.csdn.net/wosind/article/details/100012180
10.type()的用法
type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
type(object)
type(name, bases, dict)
name -- 类的名称。
bases -- 基类的元组。
dict -- 字典,类内定义的命名空间变量。
11.输入和输出的用法
1)input()函数
x = input(['输入提示'])
由于input()函数的返回值类型是str,因此有时需要使用int()和float()等函数将获得的输入数据转换成需要的类型。
x = int(input(['输入提示']))
x = float(input(['输入提示']))
在input函数的使用中还可以利用eval()函数将输入的字符串当成有效的Python表达式求值。
2)print()函数
print(对象1,对象2,···,对象n,sep=' ',end='\n')
输出时用参数sep表示输出对象之间的分隔符,默认为空格,参数end的默认值为'\n',表示print()函数输出完成后自动换行。
为了增强输出的可读性,print()函数也提供了与C语言中的printf()函数类似的格式化输出形式:
print('格式字符串' % (对象1,对象2,···,对象n))
格式字符串由一个“%”和格式运算符及一些修饰符组合而成。但在Python 3.x中它已基本被str.format()替代。
"格式化模板".format(对象1,对象2,···,对象n)
其中,格式化模板使用大括号“{}”作为特殊字符。
12.len()用于不同类型的运算结果
python中len()的用法:https://blog.csdn.net/u013176681/article/details/51000657
13.id()的用法
id()函数返回对象的唯一标识符,标识符是一个整数。
Python中id()函数用于获取对象的内存地址。
id([object])
object -- 对象
14.in的用法
Python中in的用法小结:https://blog.csdn.net/qq_32649581/article/details/89874056
15.split()的用法
split()通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。
str.split(str="", num=string.count(str))
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
16.切片用法
彻底搞懂Python切片操作:https://www.jianshu.com/p/15715d6f4dad
17.dict(zip(··))的用法
Python: 字典dict: zip():https://www.cnblogs.com/baxianhua/p/8072824.html
18.sum()用于set的结果
19.sum(range(…))的用法及结果
例:sum(range(…))的值为45。
20.list(range(6))的结果
[0,1,2,3,4,5]
21.is的用法
Python中 ==,is的使用:https://www.jianshu.com/p/5beaf24eafd6
22. myStr = "python" myList = list(enumerate(myStr)) print(myList[3])
23.列表的append()用法
append() 方法用于在列表末尾添加新的对象。
list.append(obj)
obj -- 添加到列表末尾的对象。
24.集合的运算及结果
例:
25.局部变量的作用域
Python的变量的作用域(全局变量和局部变量):https://blog.csdn.net/qq_38934189/article/details/106412995
26.判断素数的算法
n = int(input("输入一个正整数n:"))
if n < 2:
print("n不是素数")
else:
for x in range(2,n): # 生成2到n的数,不包括n
if n % x == 0: # 除数不包括1和n本身,所以在此循环中只要能被其它数整除,就代表不是素数
print("n不是素数!")
else:
print("n是素数!")
27.列出所有组合,如用1角,2角和5角组成1元的所有组合等的算法
[total=i*1+j*2+k*5 for i in range(0,100)
for j in range(0,50)
for k in range(0,20)
if(10==total)
print(i,j,k,对象n,sep=' ',end='\n')
]
28.判断闰年的算法
year = int(input(“请输入一个年份:”))
if year%4==0 and year%400==0:
print(“闰年”)
elif year%4==0 and year%100!=0:
print(“闰年”)
else:
print(“平年”)
29.求最小公倍数的算法(函数)
def lcm(x, y):
if x > y:
greater = x
else:
greater = y
while(True):
if((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
return lcm