Python编程基础_02

判断语句

if语句

  • 比较运算符

运算符

描述

示例

==

检查两个操作数的值是否相等,如果是则条件变为真。

如a=3,b=3,则(a == b) 为 True

!=

检查两个操作数的值是否相等,如果值不相等,则条件变为真。

如a=1,b=3,则(a != b) 为 True

>

检查左操作数的值是否大于右操作数的值,如果是,则条件成立。

如a=7,b=3,则(a > b) 为 True

<

检查左操作数的值是否小于右操作数的值,如果是,则条件成立。

如a=7,b=3,则(a < b) 为 False

>=

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。

如a=3,b=3,则(a >= b) 为 True

<=

检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。

如a=3,b=3,则(a <= b) 为 True

  • 逻辑运算符

运算符

逻辑表达式

描述

实例

and

x and y

布尔”与”:如果 x 为 False,x and y 返回 False,否则它返回 y 的值。

True and False, 返回 False。

or

x or y

布尔”或”:如果 x 是 True,它返回 True,否则它返回 y 的值。

False or True, 返回 True。

not

not x

布尔”非”:如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

not True 返回 False, not False 返回 True

  • 猜拳例子
1
2
3
4
5
6
7
8
9
10
11
import random
a = str(random.randint(1, 3))
# 我们定义:1>3,2>1,3>2
b = input("输入您的猜拳(1=石头,2=布,3=剪刀):")
print("电脑猜的拳:" + str(a))
if ((a == "3" and b == "1") or (a == "1" and b == "2") or (a == "2" and b == "3")):
print("You win")
elif a == b:
print("Tie")
else:
print("You lose")
  • 权限判断
1
2
3
4
5
6
7
8
9
user = "admin"
pwd = "123456"
if user == "admin":
if pwd == "123456":
print("ok")
else:
print("no")
else:
print("no")
  • 三目运算符
1
print("ok") if a == 1 else print("no")
  • break、continue的使用
  1. break是直接跳出当前循环
  2. continue是到循环尾,开始下次循环

循环语句

while循环

1
2
3
4
a = 1
while a <= 10 :
print(a)
a+=1
  • 九九乘法口诀while版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a = 1
b = 1
n = ""
m = ""
while (a < 10):
if a != b:
n = ("%d*%d=%d " % (a, b, a * b))
m = m + n
b += 1
else:
n = ("%d*%d=%d" % (a, b, a * b))
m = m + n
a += 1
b = 1
print(m)
m=""

for循环

1
2
for i in "yes":
print(i)
  • 九九乘法口诀for版
1
2
3
4
for i in range(1, 10):
for j in range(1, i+1):
print(f'{j}x{i}={i*j}\t', end='')
print()

容器

字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
txt = 'a student'
# 下标操作:
'''
a Student
012345678
顺序
'''
print(txt[7]) # 取下标为7的字符
print(txt[2:8]) # 取下标2到7的字符
print(txt[3:]) # 取下标3到最后一个
print(txt[3:-1]) # 取下标为3开始 到 最后第2个 之间的字符
print(txt[2:6:2]) # 每隔2个取下标2到5的字符
print(txt[::-1]) # 面试题:翻转文本
# 查找
print(txt.find("st")) # 寻找字符串,并返回该字符串开始的下标,未找到返回-1
print(txt.find("t", 7, 9)) # 字符串序列.find(子串, 开始位置下标, 结束位置下标)
# print(txt.index("t0", 7, 9)) # 检测某个子串是否包含在这个字符串中,如果在,返回这个子串开始的位置下标,否则则报异常。
# 修改
print(txt.replace(" ", "a")) # 将参数1替换成参数2
print(txt.replace("t", "o", 1)) # 将参数1替换成参数2,参数3为替换次数,默认全部替换
# 进阶
print(txt.capitalize()) # 把字符串的第一个字符大写
print(txt.title()) # 把字符串的每个单词首字母大写
print(txt.startswith('a')) # 检查字符串是否是以 参数1 开头, 是则返回 True,否则返回 False
print(txt.endswith('t')) # 检查字符串是否是以 参数1 结束, 是则返回 True,否则返回 False
print(txt.lower()) # 转换txt中的全部大写字母为小写
print(txt.upper()) # 转换txt中的全部小写字母为大写
print(txt.ljust(2)) # 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
print(txt.rjust(2)) # 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
print(txt.center(2)) # 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
print(txt.lstrip()) # 删除txt左边的空白字符
print(txt.rstrip()) # 删除txt右边的空白字符
print(txt.strip()) # 删除两边的空白字符
print(txt.rfind("st")) # 类似于 find()函数,不过是从右边开始查找.
# print(txt.rindex("t0", 7, 9)) # 检测某个子串是否包含在这个字符串中,如果在,返回这个子串开始的位置下标,否则则报异常。
txt02 = 'hah\n616\n61dssss'
print(txt02.partition('\n')) # 把txt以str分割成三部分,str前,str和str后,返回数组(元组)//rpartition是从右开始
print(txt02.splitlines()) # 按行分割,返回列表
print("txt".isalpha()) # 如果 txt 所有字符都是字母 则返回 True,否则返回 False
print("23".isdigit()) # 如果 txt 所有字符都是数字 则返回 True,否则返回 False
print("2faf3.".isalnum()) # 如果 txt 所有字符都是字幕或数字 则返回 True,否则返回 False
print(" ".isspace()) # 如果 txt 所有字符都是空格(包括tab字符) 则返回 True,否则返回 False

列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
newlist = [1, 2, 3, "02"]
print(newlist)
for i in newlist:
print(i, )
# 列表中存放的数据是可以进行修改的,比如"增"、"删"、"改"、"查"
# ---增---
A = ['xiaoWang', 'xiaoZhang', 'xiaoHua']
print("-----添加之前,列表A的数据-----")
for temp_name in A:
print(temp_name)
temp = input('请输入要添加的学生姓名:')
A.append(temp)
print("-----append添加之后,列表A的数据-----")
for temp_name in A:
print(temp_name)
# 通过extend可以将另一个集合中的元素逐一添加到列表中
a = ["hi", 1, 2, "hi"]
b = [3, 4, "hi"]
a.append(b) # 直接添加b到a中,b现在是列表类型
print(a)
a.extend(b) # 把b中的元素逐个添加到a中
print(a)
# 通过insert(位置,元素) 在指定位置前插入元素
a.insert(1, 9)
print(a)
# ---删---
del a[3] # 删除下标为3的元素
print(a)
a.pop() # 删除最后一个元素
print(a)
a.remove(9) # 指定删除某个元素,没有该元素则报错
print(a)
# ---改---
a[0] = 9 # 指定下标直接改
print(a)
# ---查---
print(2 in a)
print(8 not in a)
print(a.count('hi'))
# ---排序---
a.reverse() # 逆置列表
print(a)
# a.sort() #sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。 不全是整型就报错
# a.sort(reverse=True)
# print(a)
# ---嵌套列表---
# 有点像二维数组?
school_names = [['北京大学', '清华大学'], ['南开大学', '天津大学']]
print(school_names[1][0])
# ---列表推导---
list1 = [i for i in range(0, 10, 2)]
print(list1)

元组

1
2
3
4
5
6
t1 = (10, 20, 30,"123")
t2 = (10,)
print([0])
print(len(t1))
print(t1.index("123"))
# 元组数据不支持增删改,只支持查找,可以整体重新赋值

字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
info = {'name': 'lily', 'age': 20, 'address': 'M78星云', 5: 6}
print(info)
# 继续走增删改查
# 查
print(info.get('age')) # 参数二为获取不到时的默认值
print(info['age']) # 如果关键字不存在,直接报错,推荐get
# 增
info['sex'] = '男'
print(info)
# 删
del info['name'] # 删除单个键值对
print(info)
info.clear() # 直接清空全部
print(info)
# 改
info['sex'] = '女' # 和增加一样
info['add'] = 'beijing' # 和增加一样
print(info)
# 其他操作
print(info.keys()) # 输出所有关键词,列表类型
print(info.values()) # 输出所有值,列表类型
print(info.items()) # 输出所有对,列表嵌套元组类型

容器公共方法

函数

用法

描述

min()

min(str)

取容器中最小值

max()

max(str)

取容器中最大值

del()

del(str[1])

删除容器中的某个元素

len()

len(str)

取容器的长度