学习内容详述

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

小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. Linux 性能调优都有哪几种方法?

    1.Disabling daemons (关闭 daemons).    2.Shutting down the GUI (关闭 GUI).    3.Changing kernel paramete ...

  2. Struts2的功能扩展点有哪些?

    l Interceptor及其相关子类 l TypeConverter及其相关子类 l Validator及其相关子类 l Result及其相关子类 l ObjectFactory及其相关子类

  3. 查看mysql相关信息

    查看本机mysql的相关信息,执行以下SQL即可: SHOW VARIABLES LIKE "%char%";

  4. 配置sublime text 3来编写Markdown

    如何使用sublime text 3编写Markdown  编写markdown的编辑器无论客户端还是在线的都有很多,这里将sublime text3作为markdown的编辑器,需要进行一些配置. ...

  5. BMZCTF simple_pop

    simple_pop 打开题目得到源码 这边是php伪协议的考点,需要去读取useless.php 解码获得源码 <?php class Modifier { protected $var; p ...

  6. I2C总线完全版——I2C总线的结构、工作时序与模拟编程

    I2C总线的结构.工作时序与模拟编程 I2C总线的结构.工作时序与模拟编程I2C总线(Inter Integrated Circuit)是飞利浦公司于上个世纪80年代开发的一种"电路板级&q ...

  7. JS 用状态机的思想看Generator之基本语法篇

    前言 最近学习了阮一峰老师的<ECMAScript 6 入门>里的Generator相关知识,以及<你不知道的JS>中卷的异步编程部分.同时在SegmentFault问答区看到 ...

  8. 大数据学习之路之sqoop导入

    按照网上的代码导入 hadoop(十九)-Sqoop数据清洗 - 简书 (jianshu.com) ./sqoop import --connect "jdbc:mysql://192.16 ...

  9. 进入React的世界

    一. React 是什么 1. 声明式写法 2. 组件化 3. 一次学习, 随处编写 二. 为什么要学习React 1. 大厂加持 - Facebook 2. 最流行, 使用人数最多, 最被开发者喜爱 ...

  10. vue中引入jq

    1.cnpm install jquery2.在webpack.base.conf.js中加入一行代码 const webpack=require("webpack") ----- ...