作业讲解
# 1.
# 准确说出下列判断的结果(不要执行代码)
v1 = 1 or 3 # 1
v2 = 1 and 3 # 3
v3 = 0 and 2 and 1 # 0
v4 = 0 and 2 or 1 # 1 优先级:()>not>and>or
v5 = 0 and 2 or 1 or 4 # 1
v6 = 0 or False and 1 #False
#eg:
n1=0 or 1 # 1
n2=v1 or 0 # 1
n3=0 and 1 # 0
n4= 1 and 0 # 0
n5=0 or 3 # 3
n6=3 or 0 # 3
n7=1 or 3 # 1
n8=3 or 1 # 3
n9=3 or 4 # 3
n10=4 or 3 #4
# 2.
# 编写一个用户登录程序
# 用户如果登录失败
# 则只能尝试三次
# 用户如果登录成功
# 则直接结束程序
#3.用while进行循环嵌套
count = 0
while count < 3:
# 1.获取用户名密码
username = input("username>>>:")
password = input("password>>>:")
# 2.判断用户名密码是否正确
if username =='nana' and password =='123':
print("登录成功")
break # 登录成功 结束程序
else:
print("登录失败")
count += 1
# 3.
# 编写一个用户登录程序
# 用户如果登录失败
# 可以无限制尝试
# 用户如果登录成功
# 则进入内层循环
# 获取用户输入的指令
# 并打印该指令
# eg: 用户输入cmd指令
# 则程序打印
# '正在执行您的指令:cmd'
# 给用户提供一个退出命令
# 用户一旦输入则退出这个程序
# eg: 用户输入q指令
# 则程序先打印该指令再结束
#
# 1.用户登录获取用户名密码
while True:
username = input("username>>>:")
password = input("password>>>:")
# 2.判断用户名密码是否正确
if username =='nana' and password =='123':
print("登录成功 欢迎光临")
# 3.获取用户指令
while True:
cmd = input("请输入你的指令:")
if cmd =='q':
print("欢迎下次光临")
break
print("正在执行您的指令:%s" %cmd )
break
else:
print("用户名或密码错误 再试一次")
# 4.
# 编写猜年龄的游戏(拔高练习
# 尝试编写)
# 用户有三次猜测的机会
# 如果用完则提示用户是否继续尝试
# 用户输入y则继续给三次机会
# 如果用户输入q则直接结束程序
# 1.定义真实年龄
real_age = 23
# 4.用while循环
count = 0
while True:
# 5.判断第四次是否继续尝试
if count == 3 :
choice = input("是否继续猜年龄>>>(y/n):")
if choice == 'y':
count = 0
else:
print("欢迎下次继续")
break
# 2.获取猜测的年龄
guess_age = input("请输入你猜测的年龄>>>:")
guess_age = int(guess_age) # 转换为整型
# 3.判断是否猜正确
if real_age == guess_age:
print("猜对了")
break # 猜对跳出循环
elif real_age >= guess_age:
print("猜小了")
count += 1
else:
print("猜大了")
count += 1
循环结构之for循环
1.前戏
# 循环打印l1里面的名字 l1 = ['jason', 'kevin', 'tony', 'oscar']
l1 = ['jason', 'kevin', 'tony', 'oscar']
#while 方法
i = 0
while i<=3:
print(l1[i])
i += 1
# for方法
for i in l1:
print(i)
"""for循环能够做的事情while 也可以做
for循环的语法结构更加简单 尤其是更加擅长循环取值"""
2.语法结构
for 变量名 in 可迭代对象: # 字符串 列表 字典 元组
for循环的循环体代码
"""
变量名的命名:
如果带取值的数据有明确的指向,最好见名知意
如果没有明确的指向 可以使用常见的字母 eg:i j item等等
"""
3.常见的取值操作
1. 列表
# 循环打印出列表中每一个数据值 l1 = ['jason', 'kevin', 'tony', 'oscar']
l1 = ['jason', 'kevin', 'tony', 'oscar']
# 用while循环
i = 0
while i < 4:
print(l1[i])
i += 1
# 用for循环
for i in l1:
print(i)
2. 字典
user_dict = {
'username': 'jason',
'pwd': 123,
'age': 18
}
for i in user_dict:
print(i)
"""for循环只能取到字典里面的key"""
3.字符串
st = "nihao xiaoxiao 加油!!!"
for i in st:
print(i)
"""for循环字符串 默认每次去单个字符"""
4.元组
tp= (11,22,33,44,55)
for i in tp:
print(i)
"""for循环元组数据与列表一致 默认都是单个数据值"""
5.集合
s1 ={1,2,3,4,5}
for i in s1:
print(i)
"""for循环集合 默认返回单个数据"""
for循环重要知识
1.range 方法(三种用法)
range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
1.for i in range(n): # 如果括号内有一个数字,那么返回的数字就是0到n-1
print(i)
2.for i in range(m,n): # 如果括号内有两个数字,那么返回的数字就是m到n-1(左闭右开)
print(i)
3.for i in range(m,n,k): # 如果括号内有三个数字,那么返回的数是m,m+k,m+2k,m+3k(等差数列)
print(i)
2.range在python2与python3差异
在python2中有两个
range():直接产生一个列表 当数据很大的时候可能会造成内存爆满
xrange():就是python3里面的range方法
在python3中
range():类似于是一个工厂 什么时候要什么时候创建 节省内存
range方法实操
网络爬虫:python代码模拟网络请求获取数据
很多网页的数据都不止一页 所以有时候需要通过代码模拟
eg:博客多页规律
"""
第二页
第三页
第四页
"""
base_url=""
for i in range(1,101):
print(base_url % i)
for +break
# 1-10 7结束
for i in range(1,10):
if i == 7:
break # break也能够结束所在那一层for循环
print(i)
for +continue
# 1-10 7跳过
for i in range(1,10):
if i == 7:
continue # continue也能够结束所在的那一层for循环 直接开始下一次
print(i)
for +else
for i in range(10):
print(i)
else:
print("行") # 0 1 2 3 4 5 6 7 8 9 行
for i in range(10):
if i == 5:
continue
print(i)
else:
print("行") # 0 1 2 3 4 6 7 8 9 行
for i in range(10):
if i == 5:
break
print(i)
else:
print("行") # 0 1 2 3 4
"""else配合for一起使用 当for循环没有被强制结束的情况下(就是没有break) 循环体结束之后运行else子代码"""
作业
#1.计算1-100所有的数之和
# while方法
i =1
sum =0
while i <= 100:
sum += i
i += 1
print(sum)
# for方法
sum = 0
for i in range(1,101):
sum += i
print(sum)
#2.判断列表中数字2出现的次数:l1 = [11,2,3,2,2,1,2,1,2,3,2,3,2,3,4,3,2,3,2,2,2,2,3,2]
l1 = [11,2,3,2,2,1,2,1,2,3,2,3,2,3,4,3,2,3,2,2,2,2,3,2]
count = 0
for i in l1:
if i == 2:
count += 1
continue
print(count)
#3.编写代码自动生成所有页网址:https://movie.douban.com/top250
# 第一页 https://movie.douban.com/top250?start=0&filter=
# 第二页 https://movie.douban.com/top250?start=25&filter=
# 第三页 https://movie.douban.com/top250?start=50&filter=
# 第四页 https://movie.douban.com/top250?start=75&filter=
base_url = "https://movie.douban.com/top250?start=%s&filter="
for i in range(0,250,25):
print(base_url % i)
# 4.编写代码打印出下列图形(ps:for循环嵌套)
# *****
# *****
# *****
# *****
for i in range(4):
print("*****")