for循环的嵌套使用
i=1 for i in range(1,101): print(f"今天是第{i}天") for j in range(1,11): print(f"给小美送{j}朵玫瑰") print("喜欢你")
注:嵌套for循环通过缩进确定层次关系
continue (中断所在循环,进入所在循环的下一次)
for i in range(1,6): print("语句1") for j in range(1,6): print("语句2") continue print("语句3") print("语句4")#输出内容:
语句1
语句2
语句2
语句2
语句2
语句2
语句4(重复5次)
break:(直接结束所在循环)
for i in range(1,6): print("语句1") for j in range(1,101): print("语句2") break print("语句3") print("语句4")输出内容:
语句1
语句2
语句4
(重复5次)
continue、break发工资案例
money=10000 i=1 for i in range (1,21): import random num = random.randint(1, 10) if num <5: print(f"员工{i},绩效分{num},低于5,不发工资,下一位") continue if money >= 1000: money -= 1000 print(f"员工{i},满足条件发放工资1000,公司账户余额:{money}") else: print(f"余额不足,不发了,下个月再来") break
函数
参数
def add(number1,number2): ##传入参数的数量不受限制,也可以没有 result=number1+number2 print(f"{number1}+{number2}的结果是{result}") add(5,6)
返回值(函数体遇到return,函数体内的之后的代码都不执行)
语法:
def 函数(参数):
函数体
return 返回值
变量=函数(参数)
例子:
def add(x,y): result = x+y return result print("我完事了") #该代码不会执行 r=add(1,2) print(r)
变量
局部变量:定义在函数内部,不能在函数外部访问(定义在函数内部)
全局变量:函数体内、外都能生效(定义在函数外部)
使用global关键字可以在函数内部声明变量为全局变量
x=3 def number(): global x x=5 print(x) number() print(x)###输出两个5
函数综合案例(银行存取款)
#定义全局变量 money=5000000 name=input("请输入您的姓名") #定义查询函数 def query(show_header): if show_header: print("--------查询余额-----------") print(f"{name},您的账户余额为:{money}元") #定义存款函数 def saving(num): global money money+=num print("--------存款-----------") print(f"{name},您好,您存款{num}元成功") query(False) #定义取款函数 def get_money(num): global money money-=num print("--------取款-----------") print(f"{name},您好,您取款{num}元成功") query(False) #定义主菜单函数 def main(): print("----------主菜单----------") print(f"{name},你好,欢迎来到黑马银行ATM,请选择操作:") print("查询余额 [输入1]") #通过\t对齐输出 print("存款 [输入2]") print("取款 [输入3]") print("退出 [输入4]") return input("请输入您的选择: ") #设置无限循环 while True: keyboard_input = main() if keyboard_input == "1": query(True) continue #返回主菜单 elif keyboard_input == "2": num = int(input("您想要存多少钱,请输入: ")) saving(num) continue elif keyboard_input == "3": num = int(input("您想要取多少钱,请输入: ")) get_money(num) continue else: print("退出程序") break
数据容器
list
list=["nihao",666,True] #列表可以存储多个数据,且可以为不同的数据类型
list=[[1,2,3],[4,5,6]] #列表可嵌套 (将4取出来list[1][0])
###查看1的索引是多少 mylist=[1,2,3] index=mylist.index(1) print(index) #输出0###修改元素
mylist[0]=9 print(mylist) #[9, 2, 3]###插入元素
mylist.insert(1,8) print(mylist) #[9, 8, 2, 3]###追加元素(追加到尾部)
mylist.append(7) print(mylist) #[9, 8, 2, 3, 7]mylist.extend(["li","zong","ping"]) print(mylist) #[9, 8, 2, 3, 7, 'li', 'zong', 'ping']###删除元素
mylist=[1,2,3] del mylist[0] print(mylist) #[2, 3]mylist=[1,2,3] element=mylist.pop(0) #pop可将移除的元素取出来 print(element) #1 print(mylist) #[2,3]mylist=[1,2,3] mylist.remove(2) ##remove移除具体的值 print(mylist) #[1,3]mylist=[1,2,3] mylist.clear() ##clear清空列表 print(mylist) #[]###统计列表内某元素的数量
mylist=["ni","hao","ya","hao","hao"] count=mylist.count("hao") print(count) #3###统计列表元素个数
mylist=["ni","hao","ya","hao","hao"] len=len(mylist) print(len) #5
列表的遍历
###法1---while mylist=["ni","hao","ya"] index=0 while index < len(mylist): print(mylist[index]) index+=1 ###法2---for for i in mylist: print(i)例:
mylist=[] for i in range(1,11): if i % 2 == 0: mylist.append(i) print(mylist) #[2, 4, 6, 8, 10]
tuple
元组不可修改,元素可为不同类型,index \ count \ len语法、遍历与列表相同
t1=(1,) #元组由逗号标识,单个元素必须有逗号
t2=((1,2,3),(4,5,6)) #t2[1][0] 将4取出
####元组中的列表可以修改
t3=(1,2,["ni","hao"]) t3[2][0]="ya" print(t3) #(1, 2, ['ya', 'hao'])
str
字符串不可修改 index count len 遍历(for/while循环)与前相同 ,支持下表索引
str1="ni hao ya" print(str1.index("h")) #3###字符串的的替换
str1="ni hao ya" str2=str1.replace("ya","ba") print(str2) #ni hao ba###字符串的分割
str1="ni hao ya" str2=str1.split(" ") print(str2) #['ni', 'hao', 'ya'] print(type(str2)) #<class 'list'>###字符串的规整操作(去前后空格)
str1=" ni hao ya " print(str1) # ni hao ya print(str1.strip()) #ni hao ya #不传参数,去除首尾空格str1="12ni hao ya21" print(str1.strip("12")) #ni hao ya 去除字符串12(无顺序之分)###统计字符串中某字符串出现的次数
str1="ni hao ya" print(str1.count("a")) #2###统计长度
str1="ni hao ya" print(len(str1)) #9 一个空格算一个
序列的切片操作
序列:内容连续、有序,可使用下表索引的一类数据容器,列表、元组、字符串均可视为序列,序列支持切片
切片:从一个序列中,取出一个子序列
文件
“w”模式--清空并写入
“a”模式--追加 ZXZ
test1=open("C:/Users/76325/Desktop/python/test1.txt","w",encoding="UTF-8") test1.write("hello World!") test1.flush() #删除了文件中的全部内容,并将hello World!写入其中或test1.close() #内置flush功能
异常
异常的捕获
捕获所有异常:
1.except:
2.except exception:
异常的传递
异常具有传递性
模块
模块的导入
语法:from 模块名 import 功能名 (*代表所有功能)[as 别名]
当导入不同模块中的同名功能时,后导入的功能会将前导入的覆盖
if __name__ == '__main__': 在当前模块时,if之后的命令能够执行,在其它模块导入了不能执行
_all_=["函数A"],A模块含_all_,当使用import *导入时其它模块时只能导入列表中的函数A
from time import sleep
sleep(5) #程序中断睡眠5秒