学习内容详述

上期 ‘猜年龄’练习详解:

小tip:
"""
前期编写代码一定要先用中文写出步骤,再翻译成python代码
主要先能实现功能
写任何业务,都应该先搭建它的主体功能,再考虑配套优化 """

'''
编写一个猜年龄的游戏
如果不对的情况下可以猜三次
如果对了直接结束
三次机会用完之后提示用户是否继续猜测
如果用户输入了y 则再给用户三次机会
如果用户输入n则直接结束
'''
答案及过程详解(代码注解): # 1.定义真是的年龄
real_age = 18
# 7.定义一个记录用户猜测次数的计数器
guess_count = 1
# 5.将需要反复执行的代码缩进到while子代码中
while True:
# 9.判断当前用户到底猜测了几次
if guess_count == 4:
# 10.提示用户已经尝试了三次 是否继续尝试
is_again = input('您已经尝试了三次 是否继续(y/n)>>>:')
# 11.判断用户是否继续
if is_again == 'y':
# 12.重置用户尝试的次数
guess_count = 1
else:
# 13.直接结束循环
print('下次记得来玩哟~')
break
# 2.获取用户猜测的年龄
guess_age = input('请输入猜测的年龄>>>:')
# 3.将字符串类型的数字转换成整型类型的数字
guess_age = int(guess_age) # 该代码可能会报错 暂且忽略
# 4.比较猜测的年龄和真实年龄
if guess_age > real_age:
print('哎呀 讨厌 猜大了')
guess_count += 1 # 8.猜错了就应该自增依次
elif guess_age < real_age:
print('不好意思 没那么小')
guess_count += 1 # 8.猜错了就应该自增依次
else:
print('哈哈哈 你真棒!!!')
# 6.一旦猜对了 立刻结束循环
break

作业弄懂啦,让我们继续上次没学完的循环知识吧~

while循环补充

while + else

# while 与 else 连用
#语法:
"""
while 条件:
循环体代码
else:
循环体代码正常运行结束 则会执行该子代码块
"""

```python
当 while 没有被关键字 break 主动结束的情况下,
正常结束循环体代码之后,会执行 else 的子代码(如上图)
当 while 被关键字 break 主动结束的情况下,
else 就不运行了(如下图)
```

死循环与while的嵌套

死循环就是永远无法结束的循环并且一直占用CPU工作

# 死循环有些时候会极度的影响电脑的性能 甚至会造成硬件的损坏
eg一个死循环:
count = 10
while True:
count *= 1

while嵌套

我们使用上次的 用户登录系统 来写一个while嵌套吧~

当然,如果我们写了很多的嵌套循环,除了每个循环都加上break的方式以外,我们还可以使用另外一个方法(全局标志位)来一次解决。

# 贴个代码:
flag = True # 定义一个变量flag 等于True
while flag: # flag 指代 True的位置
username = input('username>>>:')
password = input('password>>>:')
if username == 'qiao' and password == '123':
print('登录成功')
while flag: # flag 指代 True的位置
cmd = input('请输入您的指令>>>:')
if cmd == 'q':
print('下次光临')
flag = False # 将flag改为False 结束循环
print('正在执行您的指令:%s' % cmd)
else:
print("用户名或密码错误")

for循环

'''
for循环可以做到的while都能做到,但是for循环更简单
'''
一般情况下涉及到循环取值时,都会考虑使用for循环而不是while循环

贴个代码:

name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
# 使用while循环依次打印出列表中所有的元素
count = 0
while count < 5:
print(name_list[count])
count += 1
# 使用for循环依次打印出列表中所有的元素
for name in name_list:
print(name)
'''
语法结构:
for 变量名 in for循环对象: # 字符串、列表、字典、元组、集合
for循环的循环体代码
每次执行都会将循环对象中的一个元素赋值给变量名
'''
"""
命名规范:
针对for循环语法结构中的变量名 也应该做到见名知意
如果真的没有合适的名字可以使用常用的变量名i、j、k、v、num、item...
"""

贴几个例子:

# 循环字符串:依次取出每一个字符
for i in 'hello world':
print(i)

# 循环字典(特殊):循环字典只能获取到字典的key,value无法直接获取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict: # for循环默认取的是字典的key赋值给变量名i
print(i)

# 循环元组
for i in (11, 22, 33, 44, 55):
print(i)

# 循环集合:字典与集合内部的元素都是无序的
for i in {11, 22, 33, 44, 55, 66}:
print(i)

range关键字

range方法在python2和python3中有所区分
在python2中range是直接产生一个列表 元素很多的情况下比较占用空间
在python2中有一个xrange 其实就是python3里面的range
在python3中就只有一个range了
在python3中range相当于哆啦A梦的口袋,不占空间但是可以取出很多数据

现在我们来学习使用range吧~

当我们用while循环打印0-100时:

# while循环
count = 0
while count < 101:
print(count)
count += 1

当我们用for循环打印0-100就能用range帮忙啦~

# for循环
for i in range(101): # 从0开始到100结束的数据集 顾头不顾尾
print(i)

range其实一个迭代器,用于产生一个数据集合,但是节省空间

range用法

  1. 括号内只写一个数字 -- 默认从0开始 -- 顾头不顾尾

    for i in range(10):
    print(i)

  1. 括号内写两个数字 -- 自定义起始位置 -- 顾头不顾尾

    for i in range(1, 10):
    print(i)

  1. 括号内写三个数字 -- 第三个数字表示的是等差数列的差值 -- 默认情况下是1

    for i in range(1, 10, 2):
    print(i)

什么是爬虫???

通过编写代码去网络上爬取我们需要的数据

"""
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=
可以自己找一个具有多页数据的网址 研究url是否有规律
有一些网址分页是用的url
有一个使用的是内部js脚本(暂且忽略)
"""
url_demo = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
real_url = url_demo % i
# 通过代码请求页面获取页面数据
# 然后根据业务需求筛选出特定的内容

for循环补充

for+break

break结束本层for循环

for i in range(10):
if i == 4:
break
print(i)
else:
print('结束')

for+continue

continue结束本次for循环 直接开始下一次

for i in range(10):
if i == 4:
continue
print(i)
else:
print('结束')

for+else

for循环正常结束之后运行else子代码

for i in range(10):
print(i)
else:
print('结束')

for循环嵌套

注*: break 与 continue也可以用于for循环,使用语法同while循环

for i in range(3):
for j in range(5):
print('*', end='') # end=''内部不写--> 不换行
print()

基本数据类型的内置方法

如何查看数据类型的内置方法

可以借助于编程软件的自动提示 -- 采用句点符快速查看

int整型内置方法

  1. 类型转换、

    int 方法只能转换纯数字的字符串

# 类型转换
# res = int('123') # 将int方法执行之后的结果赋值给变量res
# print(res, type(res)) # int
# int('11.11')
# int('abc')
  1. 进制数转换

# 将十进制转换成其他机制
print(bin(100)) # 0b1100100 二进制(0b开头)
print(oct(100)) # 0o144 八进制(0o开头)
print(hex(100)) # 0x64 十六机制(0x开头)
# 将其他机制转换成十进制
print(int('0b1100100', 2))
print(int('0o144', 8))
print(int('0x64', 16))

float浮点型内置方法

  1. 类型转换

res = float('11.11')
print(res, type(res)) # 11.11
res = float('11')
print(res, type(res)) # 11.0
float('abc')

今天就学那么多吧!!!!

python学习-Day6的更多相关文章

  1. python 学习day6(面向对象)

    博客部分内容转自:http://www.cnblogs.com/wupeiqi/p/4493506.html 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法 ...

  2. Python学习-day6 面向对象概念

    开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完. 如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了. 程序的可扩 ...

  3. python学习day6 数据类型Ⅳ(集合)

    day6 数据类型-集合 内容补充: 列表功能: .reverse()反转 v = [1,2,3,4,5,6]v.reverse()print() #[6, 5, 4, 3, 2, 1] .sort( ...

  4. python学习 day6 (3月7日)

    #__author : 'liuyang' #date : 2019/3/7 0007 a = ['a' , 'b' , 'c'] b = [] print(a is b ) # 空元组 可以 空列表 ...

  5. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝

    一.深浅拷贝 1.  值拷贝 ls1 = ls2  不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,l ...

  6. python学习day6 for循环 字符串的内置方法

    1.for循环 和while相比 l=[1,2,3] i=0 while i <len(l) print(l[i]) i+=1 l=['a','b','c'] for item in l: pr ...

  7. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  8. python笔记 - day6

    python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...

  9. 【目录】Python学习笔记

    目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...

随机推荐

  1. 手把手带你使用EFR32 -- 土壤湿度传感器变身第二形态,以 ZigBee 形态出击

    前言 后悔,总之就是非常后悔,我当时到底是为啥才会猪油蒙心,选择了 EFR32 来学习 ZigBee 使用啊? EFR32 这玩意看性能确实不错,但是资料太少了,EmberZnet SDK 也是用得一 ...

  2. 羽夏逆向指引—— Hook

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的, ...

  3. python模块相互依赖的解决方案

    第一种:将相互依赖的文件中的其中一个文件的代码移植到另一个文件中... 第二种:将 import .... 或 from ... import 语句的位置移动到def函数内部,由于import和fro ...

  4. XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?

    XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其 本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且 可以为 XML ...

  5. Java 中怎么打印数组?

    你可以使用 Arrays.toString() 和 Arrays.deepToString() 方法来打印数组.由 于数组没有实现 toString() 方法,所以如果将数组传递给 System.ou ...

  6. Mybatis useGeneratedKeys无法返回主键解决

    1.项目环境--SpringBoot下的SSM+Maven 2.问题出现位置--Dao层和Mapper文件 错误代码如下图: dao层: mapper文件: 错误代码分析: 使用useGenerate ...

  7. 【freertos】007-系统节拍和系统延时管理实现细节

    前言 本章节的时钟系统节拍主要分析FreeRTOS内核相关及北向接口层,南向接口层不分析. 本章节的系统延时主要分析任务系统延时实现. 原文:李柱明博客:https://www.cnblogs.com ...

  8. Pycharm使用 Ctrl+滚轮 调整字体大小

    首先,打开File中的Settings 然后,点开Editor内的General 最后,在3 指向的位置勾选:Change font size (Zoom)with Ctrl+Mouse Whel 这 ...

  9. 顺利通过EMC实验(13)

  10. 从零开始:微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使 ...