1、判断与流程控制
1.1 关于流程控制
- 流程: 即计算机执行代码的顺序
- 流程控制: 对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑。Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
1.2 流程控制的分类
1.2.1 顺序流程
- 顺序流程: 就是代码一种自上而下的执行结构,也是python默认的流程
1.2.2 选择/分支流程
- 选择/分支流程: 根据在某一步的判断,有选择的去执行相应的逻辑的一种结构
1)单分支 if
# 这是单分支
"""
if 条件判断语句:
python代码块
"""
sum=100
a=int(input('请输入数字:'))
if a < sum:
print('您输入的数字太小')
2)双分支 if~else
# 这是双分支
"""
if 条件判断语句:
python代码块
esle:
python代码块
"""
sum=100
a=int(input('请输入数字:'))
if a < sum: #注意if后面是条件判断语句,然后是英文冒号:代码块
print('您输入的数字太小')
else: #esle 后面直接是英文冒号:代码块
print('您输入的数字太大')
3)多分支 if ~ elif ~ elif…else
- 补充: 关于range()函数和randow()函数
#range()函数
"""
range()函数可创建一个整数列表,一般用在for 循环中
range(start, stop[, step]) 默认start =0 stop结束但不包含,step为步长
"""
for a in range(10):
print(a,end=' ')# 打印输出 [0,9) 会默认换行,方便查看用空格代替换行
print() # 空行,方便查看
for b in range(1,11):
print(b,end=' ') #打印输出 1 到 10
print()
for c in range(0,11,2):
print(c,end=' ') #打印输出 0 到 10 的偶数
#random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
print(random.random()) #随机生成的一个实数,它在[0,1)范围内
print(random.randint(1,10)) #随机生成 1 到 10 的一个整数(包括1,10)
print( random.uniform(1.1,5.4) ) #随机生成 1.1 到 5.4 之间的浮点数,区间可以不是整数
print( random.choice('tomorrow') ) #随机生成序列中的一个元素
print( random.randrange(0,101,12) ) #随机生成从0到100的间隔为2的数(偶数)
#多分支--猜拳游戏
import random
me=int(input('请出拳:[0/1/2]')) # 0:石头:剪刀 2:步
com=random.randint(0,2)
print('电脑出拳为:%d'%com)
if me > 2:
print('出拳错误')
elif me==0 and com==1:
print('厉害,你居然赢了')
elif me==1 and com==2:
print('厉害,你居然赢了')
elif me==2 and com==0:
print('厉害,你居然赢了')
elif me==com:
print('哈哈,打平了')
else:
print('不好意思,你输了,继续加油...')
4)if ~ else 嵌套
# if else 嵌套
"""
if 条件1:
if 条件2:
print('满足条件1',同时满足条件2)
else:
print('满足条件1',但是不满足条件2)
elif 条件3:
if 条件4:
print('满足条件3',同时满足条件2)
"""
# 例1:
cj=int(input('请输入您的成绩'))
if cj > 60:
lv=int(input('请输入你的等级:'))
if lv < 1:
print('不好意思,您的等级不够')
elif lv < 3:
print('恭喜你可以晋升1级了!')
else:
print('恭喜你可以晋升3级了!')
else:
print('不好意思,您的分数不达标')
# 例2:
num=int(input('请输入整数:'))
if num%2==0:
if num%3==0:
print('您输入的整数可以整除2和3')
else:
print('您输入的整数只能整除2,不能整除3')
else:
if num%3==0:
print('您输入的整数只能整除3,不能整除2')
else:
print('您输入的整数不能整除2或3')
1.2.3 循环流程
- 循环流程: 在满足一定的条件下,一直重复的去执行某段代码的逻辑【事情】
1) while 循环
- while循环: 循环适用于对未知的循环次数 用于判断
"""
while 条件表达式:
代码指令
语法特点
1.有初始值
2.条件表达式
3.变量【循环体内计数变量】的自增自减, 否则会造成死循环
使用条件:循环的次数不确定,是依靠循环条件来 结束
目的: 为了将相似或者相同的代码操作变得更加简洁,使得代码可以重复利用
"""
# 这是while 循环
i=0
while i <=5:
print('这是第%d次循环'%i)
print('i=%d' % i)
i+=1
# 猜拳游戏改进
import random
while True:
com = int(input('请出拳:[0/1/2]'))
computer = random.randint(0,2)
print('电脑出拳:%d'%computer)
if com >2:
print('出拳错误')
elif com == 0 and computer == 2:
print('厉害,居然赢了')
elif com == 1 and computer == 0:
print('厉害,居然赢了')
elif com == 2 and computer == 1:
print('厉害,居然赢了')
elif com == computer:
print('不错,平手')
else:
print('可惜了,输了吧!')
- while 嵌套循环
# while 嵌套循环
"""
while 条件1:
条件1成立时执行语句
条件1成立时执行语句
条件1成立时执行语句
while 条件2:
条件2成立时执行语句
条件2成立时执行语句
"""
## 九九乘法表
col=1
while col <=9:
row=1
while row<=col:
print('%d*%d=%d'%(row,col,row*col),end=' ')
row+=1
print()
col+=1
## 打印三角形
i=1
while i<=5:
j=1
while j<=i:
print('*',end=' ')
j+=1
print('\n')
i+=1
2) for 循环
-for循环:适用于已知的循环次数【可迭代对象遍历】
# for 循环
"""
for 临时变量 in 字符串,列表等:
执行代码块
执行代码块
"""
# 输出1-100的和
sum=0
for i in range(101):
sum+=i
print(sum)
sum=0
for i in range(101):
sum+=i
print(sum)
# 注:以上两个语句执行结果有区别,第一个print(sum) 是在for循环里面,因此会循环打印101次,每次输出结果。
# 第二个语句print(sum)是在for循环外面,循环结束后才打印。故通常用pass来表示一个循环或者其他语句的结束,占位符(不起任何作用)
# 优化后
sum=0
for i in range(101):
sum+=i
pass # 占位符,也是保证程序结构的完整性,否则有时会报错
print(sum)
3)关于break和continue
- break:break用来结束整个循环,程序遇到break将跳出循环,不再执行循环里面的代码。
# break 使用
import random
win = 0
while True:
if win >3:
print('您已经赢了3次了')
break # 当win>3 则跳出循环,执行while循环之外的语句
pass
else:
me=int(input('请出拳:[0/1/2] '))
com=random.randint(0,2)
if me > 2:
print('出拳错误!')
elif (me==0 and com==1) or (me==1 and com==2) or (me == 2 and com==0):
print('不错,居然赢了!')
win+=1 #如果赢了就+1
elif (me==com):
print('哟,居然打平了!')
else:
print('不好意思,你输了')
pass
pass
print('已经遇到break,跳出循环,执行该语句')
- continue:当遇到continue,跳过本次循环,执行下一次循环。
#continue使用
str='I love python'
for i in str:
if i=='o':
continue # 遇到continue ,跳出本次循环,执行下一次循环
pass
print(i,end='')
pass
2、补充知识
1) netstat命令:
- netstat: 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
1.查看所有进程的端口使用信息
常用:netstat -ano
-a 显示所有连接和侦听端口。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
netstat/? 查看具体参数使用情况2.查看指定端口的连接信息:
netstat -ano | findstr 3306
在“|”前面的命令执行结果作为后一个命令执行的输入。
findstr是Window系统自带的命令,用于查找某路径下指定的一个或多个文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。其用途和用法类似Linux下的grep命令。findstr命令在MS-DOS下使用。
3.查看进程列表
tasklist | findstr 4548
tasklist/? 查看具体参数使用情况
4.结束进程
首先查询出对应的PID
netstat -ano|findstr 3306 找出mysql端口3306的连接信息进而找到对应进程信息:mysqld.exe进程
taskkill -pid 4548 -f -t 或者taskkill -im mysqld.exe -f -t
-F 指定强制终止进程。
-T 终止指定的进程和由它启用的子进程
参考资料: runob.