一、判断类型 isinstance
1、语法
""" 语法: # 用法一 isinstance(要判断的值,要判断的类型) 返回True 或者 False # 用法二 isinstance(要判断的值,(可能的类型1,可能的类型2,可能的类型3 ... ) ) 如果有一个类型满足,返回的是True 否则 返回False 数据类型: int float bool complex str list tuple set dict """
1.1、用法一
res = isinstance(5,int) res = isinstance("11223344",str) res = isinstance([1,2,3],tuple) print(res)
1.2、用法二
res = isinstance(16, (str,list,tuple) ) print(res)
二、代码块
1 以冒号作为开始,用缩进来划分作用域 2 作用域:作用的区域,作用的范围
if 10 == 10: # True 执行 print(1) print(2) print(3) print(4) if 10 == 11: # False 不执行 print(11) print(22) print(33) print(44)
1、代码块的注意点
"""要么全都是一个tab缩进,要么全都是4个空格,不能混合使用""" if 10 == 10: print(100) print(200) # IndentationError # php js .... (了解) """ if(10 == 10){ print(1) print(2) print(3) } """
三、流程控制
流程: 代码执行的过程
控制: 对代码执行过程的一种把控
1 三大结构: 2 1.顺序结构 : 默认代码依次从上到下执行 3 2.分支结构 : 4种 4 3.循环结构 : for while 5 6 分支结构: 7 (1)单项分支 8 (2)双项分支 9 (3)多项分支 10 (4)巢状分支
1、单项分支
语法:
""" if 条件表达式: code1 code2 当条件表达式成立,返回True,执行对应的代码块,反之不执行 """
例:
name = "jack" if liucaixia == "jack": print("yes")
2、双向分支
语法:
""" if 条件表达式: code1 code2 else: code3 code4 如果条件表达式成立,执行if对应的代码块 如果条件表达式不成立,执行else对应的代码块 if 代码块也叫做真区间 else 代码块也叫做假区间 """
例:
name = "jack" if liucaixia == "jack": print("yes")else: print("no")
举例:
1 按要求写一段代码 2 """ 3 name = input("请输入姓名") 4 print(name , type(name)) 5 """ 6 7 """ 8 网站登录功能: 9 提示用户输入对应的用户名和密码 10 如果用户名admin,密码000 11 提示用户,登录成功 12 否则提示,登录失败 13 """
username = input("请输入您的用户名:") password = input("请输入您的密码:") if username == "admin" and password == "000": print("登录成功~") else: print("登录失败~")
四、多项分支
语法:
""" 语法: if 条件表达式1: code1 code2 elif 条件表达式2: code1 code2 elif 条件表达式3: code1 code2 else: code... 如果条件表达式1成立,返回True,执行对应的代码块,反之则向下执行 如果条件表达式2成立,返回True,执行对应的代码块,反之则向下执行 如果条件表达式3成立,返回True,执行对应的代码块,反之则向下执行 直到最后,任何条件都不满足,执行else这个分支的代码块. elif 可以出现0次或者多次 else 可以出现0次或者1次 """
1、双项分支
flag = True # 双项分支 if flag == True: print("yes") else: print("no")
2、多项分支
youqian = False youfang = False youche = False youyanzhi = False youtili = False if youqian == True: print("我娶你1") elif youfang == True: print("我娶你2") elif youche == True: print("我娶你3") elif youyanzhi == True: print("我娶你4") elif youtili == True: print("我娶你5") else: print("你是个好人")
3、巢状分支(单项分支、双项分支、多项分支的互相嵌套)
youqian = False youfang = False youche = False youyanzhi = False youtili = False if youqian == True: if youfang == True: if youche == True: if youyanzhi == True: if youtili == True: print("^-^ 一定要娶你") else: print("......") else: print("...") else: print("No")
五、循环结构
1、while循环
语法:
""" 语法: while 条件表达式: code1... code2... 1.初始化一个变量 2.写上循环的判断条件 3.自增自减的变量值 """
例:打印1~100
i = 1 while i <= 100: # 在这个位置写要执行的逻辑 print(i) i += 1 # i = i + 1
执行过程:
""" 初始化一个变量i 第一次循环 i = 1 , i<=100 成立返回True,执行循环 print(1) i += 1 => 2 第二次循环 i = 2 , i<=100 成立返回True,执行循环 print(2) i += 1 => 3 第三次循环 i = 3 , i<=100 成立返回True,执行循环 print(3) i += 1 => 4 .... 什么时候结束? 当i = 101时候, 判断i <= 100 不成立返回False ,不执行循环 循环结束... """
例:计算1~100的累加和
方法一、
i = 1 total = 0 while i<=100: # 把所有的i值全部累加到total这个变量中 total += i # total = total + i i+=1 print(total)
代码解析:
""" # 代码解析: 第一次循环 i = 1 i<=100 成立执行循环 total += i => total = total + i => 0 + 1 i+=1 => 2 第二次循环 i = 2 i<=100 成立执行循环 total += i => total = total + i => 0 + 1 + 2 i+=1 => 3 第三次循环 i = 3 i<=100 成立执行循环 total += i => total = total + i => 0 + 1 + 2 + 3 i+=1 => 4 .... 依次循环 什么时候结束? i = 100 total = 0 + 1 + 2 + 3 + 4 + ...+ 100 = 5050 当i = 101 不满足循环的条件 , 直接跳出,循环结束.. 到此打印 5050 ; """
方法二:
total = 0 i = 1 sign = True while sign: total += i # total = total + i i+=1 # 手动加上终止循环的条件 if i == 101 : sign = False print(total)
六、单项循环的练习
1.打印一行十个小星星 help函数查看帮助文档
# (1).初始化变量 i = 0 # (2).循环判断的条件 while i <10: # (4).写上自己的代码逻辑 print("*",end="") # 打印小星星 # (3).自增加1 i+=1
2.通过打印变量实现一行十个小星星
# 字符串的拼接 var1 = "我爱你," var2 = "这个世界上所有的女生" res = var1 + var2 print(res) var1 += var2 # var1 = var1 + var2 print(var1) # 循环10次,拼接了10个星星 i = 0 strvar = "" while i < 10: strvar += "*" #strvar = '' + "*" / '*' + '*' / "**" + '*' / "***" + "*" / "*********" + "*" i+=1 print(strvar)
3.打印一行十个小星星,奇数个为★ , 偶数个位☆
""" 任意数和n取余,范围是多少? 0 ~ (n-1) n = 2 0 % 2 = 0 1 % 2 = 1 2 % 2 = 0 3 % 2 = 1 4 % 2 = 0 5 % 2 = 1 0~1 n = 5 0 % 5 = 0 1 % 5 = 1 2 % 5 = 2 3 % 5 = 3 4 % 5 = 4 5 % 5 = 0 6 % 5 = 1 0~4 扑克牌 4种花色 方片 草花 红桃 黑桃 """ i = 0 while i<10: # 写上代码的逻辑 if i % 2 == 0: print("★",end="") else: print("☆",end="") i+=1
4.一个循环打印十行十列的小星星
""" 0123456789 ********** 0~9 10111213141516171819 * * * * * * * * * * 10~19 ********** 20~29 ********** 30~39 ********** 40~49 ********** 50~59 ********** 60~69 ********** 70~79 ********** 80~89 ********** 90~99 怎么能找到 9 19 29 39 49 ... 99 这颗星星呢? """ i = 0 while i < 100: # 打印星星 print("*",end="") # 打印换行 if i % 10 == 9: print() i+=1
5.一个循环打印十行十列隔列换色的小星星
""" ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ """ i = 0 while i < 100: # 打印星星 # print("*",end="") if i % 2 == 0: print("★",end="") else: print("☆",end="") # 打印换行 if i % 10 == 9: print() i+=1
6.一个循环打印十行十列隔行换色的小星星
""" ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ """ """ 任意数和n进行地板除,会出现n个相同的数字 0 // 2 = 0 1 // 2 = 0 2 // 2 = 1 3 // 2 = 1 4 // 2 = 2 5 // 2 = 2 0 // 6 = 0 1 // 6 = 0 2 // 6 = 0 3 // 6 = 0 4 // 6 = 0 5 // 6 = 0 6 // 6 = 1 7 // 6 = 1 8 // 6 = 1 9 // 6 = 1 10 // 6 = 1 11 // 6 = 1 12 // 6 = 2 .... 0 ~ 9 // 10 会出现10个相同的0 10~19 // 10 会出现10个相同的1 20~29 // 10 会出现10个相同的2 ... 90~99 // 10 会出现10个相同的9 到此, 地板除的值 范围为: 0 ~ 9 """ print("<======>") i = 0 while i<100: # 打印星星 if i // 10 % 2 == 0: print("★",end="") else: print("☆",end="") # 打印换行 if i % 10 == 9: print() i+=1
七、练习
""" 1.提⽰⽤户输入马化腾. 判断⽤户输入的对不对. 如果对, 提⽰真聪明, 如果不对, 提醒该充值了 2.根据身高(height)找对象 男生在1米 ~ 1.5米之间 =>打印小强 你在哪里? 男生在1.5 ~ 1.7米之间 =>打印没有安全感~ 男生 1.7 ~ 1.8米之间 =>打印帅哥 留个电话 男生 1.8 ~ 2米之间 =>打印帅哥 你建议多一个女朋友吗 3.猜大小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。 4.输出 1-100 内的所有奇数 5.输出 1-100 内的所有偶数 6.⽤户登陆(有三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化) """
''' name = input("谁是中国人民当中最能抄的?") if name == "马化腾": print("真聪明") else: print("不充值你怎么可能变得更强") '''
''' height = float(input("请输入您的升高:")) # print(height, type(height)) ''' # python 特有: ''' if 1 <= height <= 1.5: print("小强在哪里") elif 1.5 < height <= 1.7: print("没有安全感") elif 1.7 < height <= 1.8 : print("打印帅哥 留个电话") elif 1.8 < height <= 2: print("打印帅哥 你建议多一个女朋友吗") ''' # 通用写法 ''' if 1 <= height and height <= 1.5: print("小强在哪里") elif 1.5 < height and height <= 1.7: print("没有安全感") elif 1.7 < height and height <= 1.8 : print("打印帅哥 留个电话") elif 1.8 < height and height <= 2: print("打印帅哥 你建议多一个女朋友吗") else: print("没有合适的选项") '''
sign = True while sign: num = float(input("请输入一个数字:")) if num == 66: print("猜对了") sign = False elif num > 66 : print("太大了") elif num < 66: print("太小了")
# 4.输出 1-100 内的所有奇数 i = 1 while i <= 100: if i % 2 == 1: print(i) i+=1
# 5.输出 1-100 内的所有偶数 i = 1 while i <= 100: if i % 2 == 0: print(i) i+=1
times = 1 sign = True while sign: # 第一步: 输入密码 pwd = input("请输入您的密码") # 判断输入的是不是111 if pwd == "111": # 输入成功的情况1 print("登录成功") # 终止循环 sign = False else: # 输入失败的情况2 # 剩余次数= 总次数 - 已用次数 res = 3 - times print("输错了,你还剩余%d次" % (res) ) # 如果次数减到0,意味着循环终止 if res == 0: sign = False # 自增加1 times+=1