走进python三千章,自信人生二百年——python学习笔记-爱代码爱编程
python 学习笔记 (第一部分)
一、 print语句
1.可以输出数字
print(666)
2.可以输出字符串
print('right')
print("right")
3.含有运算符的表达式,且会计算表达式的结果
print(6 + 6)
*4.将数据输出文件中 1.注意所指定的盘符存在 2.使用file=fp,否则会读成a,数据会无法进入
fp = open('D:/text.txt', 'a+') # “a+”表示若没有文件则新建文件,存在就在文件内容的后面继续输出
print('少 年 何 妨 梦 摘 星,敢 挽 桑 弓 射 玉 衡 !', f1ile=fp)
fp.close()
5.不进行换行输出(输出内容在一行当中)
print('Hello', 'My', 'Python')
6.语句换行
print("少 年 何 妨 梦 摘 星\
敢 挽 桑 弓 射 玉 衡")
二、语句注释
"
""
print("少 年 何 妨 梦 摘 星\
敢 挽 桑 弓 射 玉 衡")
"""
''''''print("少 年 何 妨 梦 摘 星\
敢 挽 桑 弓 射 玉 衡")'''
三、 缩进(不可用TAB键,应使用空格键完成操作)
if True:
print("如果为真,输出:")
print("true")
else:
print("否则,输出:")
print("false")
四、数据类型
1.数字类型(number)
整型(int)可以用二进制-
浮点型(float)
复数型(complex)
布尔型(bool) 布尔型是一种比较特殊的整型,它只有True和False两种值,分别对应1和0,它主要用来比较 和判断,所得结果叫做布尔值。
2.字符串类型(String)
3.列表类型(List)
4.元组类型(Tuple)
5.字典类型(Dict)(Dictionary)
6.集合类型(Set)
7.检测数据类型Python中内置了检测数据类型的函数type()。它可以对不同类型的数据进行检测
d = 10
print(type(d))
8.除此之外,还可以使用函数isinstance()判断数据是否属于某个类型
print(isinstance(d, int))
print(isinstance(d, float))
9. python常见关键词
关键字 | 描述 |
---|---|
and | 逻辑运算符 |
as | 创建别名 |
assert | 用于调试 |
break | 跳出循环 |
class | 定义类 |
continue | 继续循环的下一个迭代 |
def | 定义函数 |
del | 删除对象 |
elif | 在条件语句中使用,等同于 else if |
else | 用于条件语句 |
except | 处理异常,发生异常时如何执行 |
False | 布尔值,比较运算的结果 |
finally | 处理异常,无论是否存在异常,都将执行一段代码 |
for | 创建 for 循环 |
from | 导入模块的特定部分 |
global | 声明全局变量 |
if | 写一个条件语句 |
import | 导入模块 |
in | 检查列表、元组等集合中是否存在某个值 |
is | 测试两个变量是否相等 |
lambda | 创建匿名函数 |
None | 表示 null 值 |
nonlocal | 声明非局部变量 |
not | 逻辑运算符 |
or | 逻辑运算符 |
pass | null 语句,一条什么都不做的语句 |
raise | 产生异常 |
return | 退出函数并返回值 |
True | 布尔值,比较运算的结果。 |
try | 编写 try…except 语句 |
while | 创建 while 循环 |
with | 用于简化异常处理 |
yield | 结束函数,返回生成器 |
seed() | 初始化随机数生成器 |
getstate() | 返回随机数生成器的当前内部状态 |
setstate() | 恢复随机数生成器的内部状态 |
getrandbits() | 返回表示随机位的数字 |
randrange() | 返回给定范围之间的随机数 |
randint() | 返回给定范围之间的随机数 |
choice() | 返回给定序列中的随机元素 |
choices() | 返回一个列表,其中包含给定序列中的随机选择 |
shuffle() | 接受一个序列,并以随机顺序返回此序列 |
sample() | 返回序列的给定样本 |
random() | 返回 0 与 1 之间的浮点数 |
uniform() | 返回两个给定参数之间的随机浮点数 |
triangular() | 返回两个给定参数之间的随机浮点数,您还可以设置模式参数以指定其他两个参数之间的中点 |
betavariate() | 基于 Beta 分布(用于统计学)返回 0 到 1 之间的随机浮点数 |
expovariate() | 基于指数分布(用于统计学),返回 0 到 1 之间的随机浮点数,如果参数为负,则返回 0 到 -1 之间的随机浮点数。 |
gammavariate() | 基于 Gamma 分布(用于统计学)返回 0 到 1 之间的随机浮点数 |
gauss() | 基于高斯分布(用于概率论)返回 0 到 1 之间的随机浮点数 |
lognormvariate() | 基于对数正态分布(用于概率论)返回 0 到 1 之间的随机浮点数 |
normalvariate() | 基于正态分布(用于概率论)返回 0 到 1 之间的随机浮点数 |
vonmisesvariate() | 基于 von Mises 分布(用于定向统计学)返回 0 到 1 之间的随机浮点数 |
paretovariate() | 基于 Pareto 分布(用于概率论)返回 0 到 1 之间的随机浮点数 |
weibullvariate() | 基于 Weibull 分布(用于统计学)返回 0 到 1 之间的随机浮点数。 |
五、运算符
1.常用运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 相加 | a + b |
- | 相减 | a - b |
* | 相乘 | a * b |
/ | 相除 | a / b |
% | 取模 | a % b |
** | 幂 | a**b 表示 a 的 b 次幂 |
// | 取整 | 9 // 4 结果为 2 |
== | 是否相等 | a == b |
!= | 是否不等于 | a != b |
> | 是否大于 | a > b |
>= | 是否大于等于 | a >= b |
<= | 是否小于等于 | a <= b |
= | 简单的赋值运算符 | a = b + c |
+= | 加法赋值运算符 | a += b 等效于 a = a + b |
-= | 减法赋值运算符 | a -= b 等效于 a = a - b |
*= | 乘法赋值运算符 | a *= b 等效于 a = a * b |
/= | 除法赋值运算符 | a /= b 等效于 a = a / b |
%= | 取模赋值运算符 | a %= b 等效于 a = a % b |
**= | 幂赋值运算符 | a** = b 等效于 a = a** b |
//= | 取整除赋值运算符 | a //= b 等效于 a = a // b |
& | 与 | a & b |
| | 或 | a | b |
^ | 异或 | a ^ b |
~ | 取反 | ~a |
<< | 左移动 | a << 3 |
>> | 右移动 | a >> 3 |
and | 布尔类型与 | a and b |
or | 布尔类型或 | a or b |
not | 布尔类型非 | not a |
is | 判断两个标识符是否引用同一个对象 | a is b |
is not | 判断两个标识符是否引用不同对象 | a is not b |
2. 运算符优先级
运算符 | 描述(由上至下对应优先级由高到低) |
---|---|
** | 幂运算 |
~ + - | 取反、正号、负号 |
* / % // | 乘、除、取模、取整除 |
+ - | 加法、减法 |
>> << | 右移、左移 |
& | 与 |
^ | | 异或、或 |
<= < > >= | 比较运算符 |
== != | 是否等于、是否不等于 |
= % = / = // = -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
3、赋值运算符的使用
a, b = 5, 2
a += b
print(a, b)
a -= b
print(a, b)
a *= b
print(a, b)
a /= b
print(a, b)
a **= b
print(a, b)
a //= b
print(a, b)
4、比较运算符的使用
print(1 == 1)
print(1 == 2)
print(1 == True)
print(0 == False)
print(1.0 == True)
print(0.0 == False)
print((0.0 + 0.0j) == False)
5、逻辑运算符的使用
print(0 and 4)
print(False and 4)
print(1 and 4)
print(1 or 4)
print(True or 4)
print(0 or 4)
print((4 <= 5) and (4 >= 3))
print((4 >= 5) or (4 <= 3))
print(not 1)
6、位运算符的使用
a, b = 7, 8
print(bin(a)) # 二进制形式111
print(bin(b)) # 二进制形式1000
print(bin(a & b))
print(bin(a | b))
print(bin(a ^ b))
print(bin(~a))
print(bin(a << 2))
print(bin(a >> 2))
7、成员运算符的使用
A = [1, 2, 3, 4] # 列表
print(1 in A)
print(0 in A)
print(1 not in A)
print(0 not in A)
8、身份运算符的使用
a: int
a = b = 10 # a,b都为10
print(a is b)
print(a is not b)
b = 20 # b修改为20
print(a is b)
print(a is not b)
9、小案例
从键盘输入一个3位整数,计算并输出其百位、十位和个位上的数字,程序运行时,从键盘输入356
x = int(input("请输入一个三位整数:"))
g = x // 1 % 10 # 个位数
s = x // 10 % 10 # 十位数
b = x // 100 % 10 # 百位数
print('百位:', b, '十位:', s, '个位:', g)
六.顺序结构
1.对象的布尔值
以下对象的布尔值为False
*Flase
*数值()
*None
*空字符串
*空列表
*空元组
*空字典
*空集合
其他对象的bool值均为True
print('-------------------------------------------')
print(bool(False)) # False
print(bool(0)) # False
print(bool(0.0)) # False
print(bool(None)) # False
print(bool('')) # False
print(bool("")) # False
print(bool([])) # 空列表
print(bool(list())) # 空列表
print(bool(tuple())) # 空元组
print(bool({})) # 空字典
print(bool(dict())) # 空字典
print(bool(set())) # 空集合
print('-----------以上对象的布尔值为False--------------')
七、条件语句
1.if语句
‘’’
if语句用于在程序中有条件地执行某些语句,格式如下:
if条件表达式:
语句块#当条件表达式为True时,执行语句块
‘’’
1.1 if 语句用法
score = 90
if score >= 60:
print("优秀!")
print("您的分数%d" % score)
2.if-else语句
if-else语句用于根据条件表达式的值决定执行那块代码,其语法格式如下:
if条件表达式:
语句块 1 # 当条件表达式为True时,执行语句块1
else:
语句块 2 # 当条件表达式为False时,执行语句块2
2.1 if-else 语句用法
score = 80
if score >= 60:
print("优秀")
else:
print("加油!")
print("您的分数为:%d" % score)
3.if-elif 语句
‘’’
在程序中多重判断可以通过 if-elif 语句实现,其语法格式如下 :
if 条件表达式1:
语句块 1 #当条件表达式1为True时,执行语句块1
elif 条件表达式2:
语句块 2 #当条件表达式2为True时,执行语句块2
…
elif 条件表达式n:
语句块 n #当条件表达式n为True时,执行语句块n
‘’’
3.1 if—elif语句用法
score = 80
if 90 <= score <= 100:
print("成绩爆表")
elif 80 <= score < 90:
print("成绩优秀")
elif 60 <= score < 80:
print("成绩合格")
elif 0 <= score < 60:
print("成绩堪忧")
print("您的成绩为:%d" % score)
4. if-elif-else 语句
‘’’
此外 if-elif 语句后还可以使用 else语句
用来表示if-elif语句中有条件不满足时执行的语句块,其语法格式如下
if 条件表达式1:
语句块 1 #当条件表达式1为True时,执行语句块1
elif 条件表达式2:
语句块 2 #当条件表达式2为True时,执行语句块2
…
else 条件表达式n:
语句块 n #当以上条件表达式均为False时,执行语句块n
‘’’
4.1 if-elif-else语句的使用
score = 120
if 90 <= score <= 100:
print("成绩爆表")
elif 80 <= score < 90:
print("成绩优秀")
elif 60 <= score < 80:
print("成绩合格")
elif 0 <= score < 60:
print("成绩堪忧")
else:
print("成绩有误")
print("您的成绩为:%d" % score)
5 if 语句嵌套
‘’’
if 语句嵌套是指if、if-else中的语句块可以是if或if-else语句,其语法格式如下:
(一) if 语句
if 条件表达式1:
if 条件表达式2: #嵌套if语句
语句块2
if 条件表达式3: #嵌套if-else语句
语句块3
else:
语句块4
(二) if-else语句
if 条件表达式1:
if 条件表达式2: #嵌套if语句
语句块2
else:
if 条件表达式3: #嵌套if-else语句
语句块3
else:
语句块4
‘’’
5.1 if嵌套语句的用法
a, b, c = 5, 8, 3
if a >= b:
if a >= c:
print("a,b,c中最大的值为:%d" % a)
else:
print("a,b,c中最大的值为:%d" % c)
else:
if b >= c:
print("a,b,c中最大的值为:%d" % b)
else:
print("a,b,c中最大的值为:%d" % c)
八、循环语句
1.内置函数range()
当遍历数字序列时,可以使用range()函数
(1)第一种创建方式,只有一个参数(小括号中只给了一个数)
r = range(10) # [0,1,2,3,4,5,6,7,8,9],默认为从0开始,默认相差1称为步长
print(r) # range(0,10)
print(list(r)) # 用于查看range对象中的整数序列 ———>list是列表的意思
(2)第二种创建方式,给了两个参数(小括号中给了两个数)
r = range(1, 10) # 指定了起始值,从1开始,到10结束(不包括10),默认步长为1
print(list(r)) # [1,2,3,4,5,6,7,8,9]
(3)第三种创建方式,给了三个参数(小括号中给了三个数)
r = range(1, 10, 2)
print(list(r)) # [1,3,5,7,9]
(4)判断指定的整数在序列中是否存在 in,not in
print(10 in r) # False,10不在当前的r这个整数序列中
print(9 in r) # True, 9在当前的r这个整数序列中
print(10 not in r) # True
print(9 not in r) # False
sum = 0
for i in range(1, 101):
sum += 1
print("1 + 2 + ··· + 100 = %d" % sum)
2.while语句
‘’’
在while语句中,当条件表达式为True时,就重复执行语句块;当条件表达式为False时,就结束执行语句块。while语句的语法格式如下:
While条件表达式:
语句块 # 此处语句块也称循环体
‘’’
while语句的用法
i, sum = 1, 0 # 实现1~100的累加
while i < 101:
sum += 1
i += 1
print("1 + 2 + ··· + 100 = %d" % sum)
3.for语句
for语句的用法:
for word in "python":
print(word)
4.while与for嵌套
(1) while语句中嵌套while语句 九九乘法表
i = 1
while i < 10:
j = 1
while j <= i:
print("%d*%d=%-3d" % (i, j, i * j), end='')
j += 1
i += 1
print(end='\n')
(2) while语句中嵌套for语句 九九乘法表
i = 1
while i < 10:
for j in range(1, i + 1):
print("%d*%d=%-3d" % (i, j, i * j), end='')
i += 1
print(end='\n')
(3)for语句中嵌套while语句 九九乘法表
for i in range(1, 10):
j = 1
while j <= i:
print("%d*%d=%-3d" % (i, j, i * j), end='')
j += 1
print(end='\n')
(4) for语句中嵌套for语句 九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print("%d*%d=%-3d" % (i, j, i * j), end='')
print(end='\n')
5.break语句
break语句可以使程序立即退出循环,转而执行该循环的下一条语句。
如果break语句出现在嵌套循环中的内层循环中,则break语句只会跳出当前层的循环。
i = 0
while True:
i += 1
print("第%d次循环开始" % i)
if i == 3:
break
print("第%d此循环结束" % i)
print("整个循环结束")
6.continue语句
i = 0
while i < 3:
i += 1
print("第%d次循环开始" % i)
if i == 2:
continue
print("第%d次循环结束" % i)
print("整个循环结束")
7. else语句
‘’’
else语句除了可以与if语句搭配使用外,还可以与while语句,for语句搭配使用,
当条件不满足时执行else语句块,它只在循环结束后执行。
‘’’
(1)for语句搭配else语句的用法
for n in range(1, 3):
print("第%d次循环" % n)
else:
print("循环结束")
(2) for语句中存在break语句
for n in range(1, 4):
print("第%d次循环" % n)
if n == 2:
break
else:
print("循环结束")
print("程序结束")
8.pass语句
for n in range(1, 3):
pass
print("暂时没有思路")
print("程序结束")
练习:程序输出1~100的质数
print('以下是100以内的质数:')
for num in range(2, 101): # ramge函数生成2~100之间的整数,使用for语句遍历这些整数,
if all(num % i != 0 for i in range(2, num)): # 对每个整数进行判断是否是质数,
print(num) # (仅能被1和自身整除的整数),使用all()函数和一个生成器表达式进行判断,
# 如果一个数能被2到(n-1)之间的任意数整除,则返回False,否则返回True,最后如果这个数是质数则将这个数输出sum=0
sum = 0
for i in range(2, 100): # 循环迭代i 2->100
for j in range(2, i): # 第二次循环迭代j 2->i-,判断i 是否能被j整除
if i % j == 0: # 如果i能被j整除,说明i不是质数,跳出循环
break
else: # 如果第二层for循环正常结束,说明i为质数,将它加到sum上
sum += i
print("100以内质数的和为:", sum) # 输出质数之和
九、字符串
1. 使用单引号标识字符串
'别让世俗淹没生活的浪漫与热爱 !'
2.使用双引号标识字符串
"别让世俗淹没生活的浪漫与热爱 !"
3. 使用三引号标识字符串
'''
别让世俗淹没生活的浪漫与热爱
'''
"""
别让世俗淹没生活的浪漫与热爱
"""
4. 字符串不可以被修改但是可以被截取
str = "xiaoqian is a programmer."
print(str[0:14] + "gril")
5.、转义字符
1.换行\n
print('Hello\nWord')
2.回车\r
print('Hello\rWord') # word将hello覆盖了
3.水平制表符\t
print('Hello\tWord')
4.退格\b
print('Hello\bWord') # \b是退一格,将o退没了
print('http:\\www.baidu.com')
print('他说:"别让世俗淹没生活的浪漫与热爱 !"')
5.原字符,不希望转义字符起作用,就是用原子符。在原子符之前加上r或R
print(r'别让世俗淹没生活的浪漫\n与热爱')
6.注意事项,最后一个字符不能是反斜杠
如:
print(r'别让世俗淹没生活的浪漫\n与热爱\')
print('r''别让世俗淹没生活的浪漫\n与热爱\')
6.字符串的输出
print("666")
7.常用的格式化符号
格式符号 | 转换 |
---|---|
%s | 格式化字符串 |
%c | 格式化字符 |
%i | 格式化有符号十进制整数 |
%d | 格式化整数 |
%u | 格式化无符号十进制整数 |
%o | 格式化八进制整数 |
%x | 格式化十六进制整数(小写字母) |
%X | 格式化十六进制整数(大写字母) |
%e | 用科学计数法格式化浮点数 |
%E | 作用和%e一样 |
%f | 格式化浮点实数 |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
%% | 输出% |
8.字符串的输入
input("666")
9.字符串的索引与切片
字符串可以通过运算符[]进行索引与切片,字符串中每个字符都对应两个编号(也称下标)字符串str正向编号从0开始,
代表第一个字符,依次往后,字符串str负向编号从-1开始,代表最后一个字符,依次向前。因为编号可正可负,所以字符串中的
某个字符可以有两种方法索引。
str=("cong cong na nian")
0123456789
str = "cong cong na nian"
(1)单个字符
print(str[10])
print(str[6]) # 空格也是字符
print(str[66]) # IndexError: string index out of range 字符超出索引范围
print(str[-2])
(2)多个字符切片
print(str[0:4]) # 类似于range()函数的使用,默认步长为1
print(str[:5]) # 等价于str[0:5:1]
print(str[:]) # 整个字符串
print(str[2:4:2]) # 索引2,4两个字符,步长为2
print(str[2:8:-2]) # - 表示反方向取,步长为2,从8开始到2,一般不常用
10.字符串的运算
运算符 | 说明 |
---|---|
+ | 字符串连接 |
* | 重复字符串 |
[] | 索引字符串中的字符 |
[:] | 对字符串进行切片 |
in | 如果字符串中包含给定字符,返回True |
not in | 如果字符串中包含给定字符,返回False |
r或R | 原样使用字符串 |
11.字符串的运算
str1, str2 = "青春的颜色", "一抹绚烂"
print(str1 + str2)
print(3 * (str1 + str2))
if "季节" in "季节更替":
print("注意身体!")
else:
print("各自安好!")
12.字符串常用函数
(1)大小写转换
函数 | 说明 |
---|---|
upper() | 将字符串中所有小写字母转换为大写 |
lower() | 将字符串中所有大写字母转换为小写 |
capotalize() | 将单词的首字母大写 |
title() | 将每个字符串中单词的首字母大写 |
name = "time"
str = input("请输入用户名(不区分大小写):")
if str.lower() == name:
print("欢迎用户%s登录" % name)
else:
print("用户名错误!")
(2)判断字符
函数 | 说明 |
---|---|
isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写)字符都是大写,则返回True,否则返回False |
islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写)字符都是小写,则返回True,否则返回False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母,则返回True,否则返回False |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回False |
isspace() | 如果字符串中只包含空白,则返回True,否则返回False |
istitle() | 如果字符串是标题化的,则返回True,否则返回False |