学习python-Day09
时间:2022-06-23
本文章向大家介绍学习python-Day09,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今日学习内容
列题:
1.准确说出下列判断的结果
v1 = 1 or 3
v2 = 1 and 3
v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
v6 = 0 or False and 1
1.分别是: 1, 3, 0, 1, 1, False
2.第三个问题容易出错,因为出现 0,在这里我们可以看成布尔值,也可以看成数据值,如果里面全是数据值,则得出的结果也是数据值。全是 and连接多个条件则先从左往右看。则最后得出数据值 and链接的结果取决于后面的数值。
3.第四个问题有 and和 or,没有括号的情况下,我们可以优先考虑 and,再考虑 or, 0 为 False也可以为数据值,后面 1为数据值也可以为 True。无论前面是 True 还是 False 取决于后面的 1 。
4.第五题可以看出有 and和 or 优先考虑 and 再看 or。类比第四题,我们就看 or的 1 和 4 均为 True,则 or 是取决于前面的数,前面为 True, 就不用看后面了。
'''注意:
逻辑运算符的优先级: () > and > or '''
2.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
1.先明确主体功能>>>:登录
2.先按照登录的逻辑编写
3.再去思考其他的附加功能(尝试三次,先尝试无穷次,再想这么变成三次)
4.最后补一个简单的强制结束
#设置初始次数为1
count = 1
while count < 4:
#获取用户名和密码
username = input('username>>>:')
password = input('password>>>:')
#判断是否正确,正确,结束本循环
if username == 'xz' and password == '123':
print('ok')
break
#如果密码不正确,则循环次数加一
else:
print('no')
count += 1
#方法二:
count = 1
while True:
#直接判断次数是否达到4次
if count == 4:
break
username = input('username>>>:')
password = input('password>>>:')
if username == 'xz' and password == '123':
print('ok')
break
else:
print('no')
count += 1
方法三:
count = 1
while count < 5:
name = input('username>>>:')
qwd = input('password>>>:')
if name == 'xz' and qwd == '1823':
print("成功!!!")
break
else:
print("用户登录错误,你还有%s 次登录机会" % (4 - count))
count += 1
else:
print("尝试三次错误,你已经没有机会!!!")
3.编写一个用户登录程序
用户如果登录失败 可以无限制尝试
用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
eg: 用户输入cmd指令 则程序打印正在执行您的指令:cmd'
给用户提供一个退出命令 用户一旦输入则退出整个程序
eg: 用户输入q指令 则程序先打印该指令再结束
while True:
uname = input('uname>>>:')
pwd = input('pwd>>>:')
if uname == 'xz' and pwd == '123':
print('ok!!!')
#可以无限输入指令并打印
while True:
cmd = input('请输入您的指令>>>:')
#当输入 q 时,退出当前循环,后再退出大循环。
if cmd == 'q':
print('欢迎下次光临')
break
print('正在执行您的命令:%s' % cmd)
break
#退出大循环后,因为是循环是强制性退出循环,则不会执行else子代码。
else:
print('用户名或密码错误')
4.编写猜年龄的游戏(拔高练习 尝试编写)
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序
#先定义一个正确的年龄
real_age = 24
#再定义一个计数器
count = 1
#先加个循环,无限
while True:
#判断当前是第几次猜
if count == 4:
#当猜测4次,没机会了,所以获取用户是否继续游戏
choice = input('no!!!so much!!(y/n)>>>:')
#判断用户输入的关键字,y继续,n退出
if choice == 'y':
#重新开始,这次数也要重新定义为1
count = 1
else:
print('no!!!!')
break
#获取用户信息--猜测的年龄
guess_age = input('guess_age>>>:')
guess_age = int(guess_age)
if guess_age > real_age:
print('猜错了哦,我年龄没那么大的')
count += 1
elif guess_age < real_age:
print('猜错了哦,我年龄没那么小的')
count += 1
else:
print('好耶 猜对了 你真棒!!!')
break
方法二:
# 这是设置循环次数
while count < 4:
# 这是计算机随机数设置
computer = random.randint(0, 21)
if age == computer:
print("猜对了!!!")
# 猜对就结束本循环
break
# 猜错要另外考虑输入格式’y‘和’n‘的问题
else:
print("你已经猜错了%s次,最多猜%s次" % (count, 3 - count))
count += 1
# 获取用户输入
key = input("是否继续游戏(y/n):")
if key == 'y':
age = input("输入年龄>>>:")
computer = random.randint(0, 21)
if age == computer:
print("猜对了!!!")
break
if key == 'n':
break
# 验证一些用户的输入值是否超过三次,超过就结束
if count % 3 == 0:
key = input("你已经猜错三次,没有机会猜了!!!是否继续'y'/'n':")
if key == 'y':
count = 1
age = input("输入年龄>>>:")
computer = random.randint(0, 21)
if age == computer:
print("猜对了!!!")
break
if key == 'n':
print('你已退出')
break
循环结构之for循环
1.while 循环打印出列表每个数据值。
l1 = ['jason', 'kevin', 'tony', 'oscar']
num = 0
while num < 4:
print(l1[num]) # 每次循环的时候索引应该自增1
num += 1
2. for 循环打印出列表的数据值。
for i in l1:
print(i)
3.while和 for循环打印的区别在于 for循环语法更简单,多用于循环取值,代码量更简化。
while 与 for 还有些区别,在于 while 需要后面条件不符合或者关键字强制退出循环( break , continue),而 for 只需要循环完代码就自动退出循环。
4.注意 python2 和 python3 中 print(i) 是有区别的。
当用 python3 时
>>> print(range(10))
range(0, 10)
当用 python2 时
>>> print(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
而将 python2 转换另一种输出时
>>> print(xrange(10))
xrange(10)
结果相当于python3中的输出效果。
5.在python2中 range方法得到的结果就是一个确定的列表对象,列表对象所拥有的方法,range方法生成的结果对象都可以直接使用。
6.而在python3中 range方法得到的对象是一个迭代器而不是一个确定的列表,如果想要转化为列表对象则需要再使用 list方法进行转化。但python3节省了内存。
1.语法结构:
for 变量名 in 可迭代对象:
(for 循环体代码)
'''迭代对象为:字符串,列表,字典,元组,集合'''
2. 列表取值:索引
l1 = ['jason', 'kevin', 'tony', 'oscar']
for i in l1:
print(i)
'''
jason
kevin
tony
oscar'''
打印出列表的最小单位为数据值的整体,不能拆分。
3.字典取值:按K取值
user_dict = {
'username': 'jason',
'pwd': 123,
'age': 18
}
for i in user_dict:
print(i)
'''
username
pwd
age
'''
for循环字典, 默认只能取到字典的key,不能取出V具体数据值。
4.字符串取值:单个字符,依次顺序取值。
desc = 'hello'
for i in desc:
print(i)
'''
h
e
l
l
o
'''
for循环字符串, 默认每次取单个字符。
5.元组取值:索引
t = (11, 22, 33, 44)
for i in t:
print(i)
"""
11
22
33
44
"""
for循环元组数据与列表一致 ,取值都是单个数据值。
6.集合取值:索引
s1 = {1,2,3,4,5}
for i in s1:
print(i)
'''
1
2
3
4
5
'''
for循环集合数据与列表一致 ,取值都是单个数据值。
for重要知识
1.range方法
如果要遍历数字序列,可以使用内置range()函数,它会生成数列。
range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
2.for i in range(5):
print(i)
如果括号内只有一个数字,那么就是从0开始到数字减一结束
(顾头不顾尾 左包含右不包含)
3.for i in range(2,10):
print(i)
括号内有两个数字,第一个是起始位置(包含) 第二个是终止位置(不包含)
4.for i in range(0, 100, 25):
print(i)
括号内有三个数字,最后一个是数据的间隔数(相当于等差数列)
range方法实操
网络爬虫:python代码模拟网络请求获取数据
方式一:
博客园多页规律
https://www.cnblogs.com/ 第一页
https://www.cnblogs.com/#p2 第二页
https://www.cnblogs.com/#p3 第三页
https://www.cnblogs.com/#p4 第四页
这是规律,网址最后一个字符不同,可以利用这一规律,循环取值。
提前定义好一个模板:
base_url = 'https://www.cnblogs.com/#p%s'
for i in range(1, 101):
print(base_url % i)
结果就是循环打印出每页的网址。
for+break/continue/else
1.如果使当 i == 7 时结束,则需要用到 break。
for i in range(1,11):
if i == 7:
break
print(i)
break也能够结束所在的那一层 for循环。
2.如果使当i == 7 时跳过,不影响下次循环,则用到 continue
for i in range(1, 11):
if i == 7:
continue
print(i)
continue也能够结束所在的那一次for循环 直接开始下一次循环。
3.
for i in range(10):
print(i)
if i == 5:
break
else:
print('结束执行')
else配合 for一起使用。
当 for循环没有被强制结束的情况下,循环体结束之后运行 else子代码。
作业04
1.计算1-100所有的数之和
sum1 = 0
for i in range(1, 101):
sum1 = sum1 + i
print(sum1)
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:
c = l1.count(i)
# count += 1
print(c)
# print(count)
3.编写代码自动生成所有页网址
https://movie.douban.com/top250
desc = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 251, 25):
print(desc % i)
4.编写代码打印出下列图形(ps:for循环嵌套)*****
*****
*****
*****
for i in range(4):
for j in range(5):
print('*', end='')
print()
原文地址:https://www.cnblogs.com/bjyxxc/p/16406455.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 解释一下为什么我很少用jQuery
- Java进阶(三)多线程开发关键技术
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
- Java进阶(二)当我们说线程安全时,到底在说什么
- SpringBoot 笔记(十一):Servlet容器
- 深度学习——CNN(3)CNN-AlexNetCNN-GoogleNet其他网络结构
- github 解决冲突
- Unix/Linux常用的命令
- 使用Webpack快速配置编写HTML基础环境
- 探索两种优雅的表单验证
- 修复Android ROM的Google网络定位
- Go基本安装
- WordPress 在使用CDN后获取正确访客 ip
- 如何解决spark开发中遇到需要去掉文件前几行数据的问题
- 通过解析设置二级域名并申请免费的SSL证书