路飞学城-Python开发集训-第1章
学习体会:
在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?。。。。今天是集训第一次交作业的时间,突然发现看似简单升级需求,自己硬是一点思路没有,慢慢的想了想,有了点思路,但是发现想用列表时,却忘了有哪些方法,想到用文件存储用户信息,文件操作竟然也忘了,通过查找之前笔记和网上资料,最后终于磕磕绊绊把程序写完了,虽然写完了,但思路感觉还不太清晰,看来以后真的要多练了,光看不练真的不行。
另外之前也记过一些笔记,之前有记漏或遗忘的,这次的集训笔记针对这些遗忘或遗漏的知识再做下记录。
笔记
编程语言的进化:
机器语言:最底层的语言,由01组成,机器可以直接识别
汇编语言:次底层语言,一般用在硬件编程上,如CPU编程
高级语言:
编译型:C、C++、 执行速度快,但开发效率低
解释型:python、java、PHP 执行效率慢,但开发效率高,需要解释器
python是吉多·范罗苏姆(Guido van Rossum) 在1989年编写的,在1991年发行第一个版本。
变量和常量:
变量的作用:(1)用来存储数据,方便调用
(2)用来标识数据,方便阅读(变量名又称为标识符)
变量命名基本规则:(1)变量名只能由字母、下划线、数字组成
(2)不能以数字开头
(3)变量名不能使用保留字符
变量命名习惯:(1)驼峰式:AgeOfOldboy
(2)下划线:age_of_oldboy (推荐)
常量:在Python中使用变量名全为大写来表示常量(约定俗成)
注释的作用:(1)让代码不执行
(2)对代码做解释(解释使用中英文都可以)
Python的数据类型:
int整型包括负数。
如果要多行打印,需要使用3引号。
练习:
1、优化猜年龄的游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。
_age = 26
count=0 while count<3:
age=int(input("请输入年龄:"))
if age==_age:
print("你猜对了")
break
elif age < _age:
print("try bigger")
else:
print("try smaller")
count+=1
2、优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选Y,则再允许猜3次,以次往复。。。
_age = 26
count=0 while count<3:
age=int(input("请输入年龄:"))
if age==_age:
print("你猜对了")
break
elif age < _age:
print("try bigger")
else:
print("try smaller")
count+=1
if count == 3:
choice = input("是否继续猜:(Y/N)")
if choice == "Y":
count = 0
else:
break
作业
看似简单的作业,用到的知识点还是蛮多的,而自己在做的时候由于很多用法或细节自己之前并没有在意,然后查笔记,问百度,花了很长时间算是勉强完成了需求。现将作用中遇到的问题记录一下:
1、字符串和列表之间的转换:(由于需要把用户信息和登陆次数记录到文件中,而文件只能是字符串的格式,这就涉及到将文件中的字符串形式的列表转换成列表)
#字符串转换成列表
s="www.baidu.com"
li=list(s)
print(li) #['w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm']
#字符串中的每一个字符都做为一个列表元素,且每个列表元素也是字符串 #如果不想让字符串每个字符都做为一个元素加入列表,怎么办?
s="www.baidu.com"
s2=s.split(".")
print(s2) #['www', 'baidu', 'com']
#这个其实和列表没多大关系,使用的是字符串的split方法,只有过这种方法得到的结果本来就是一个列表而已,且每个列表元素也是字符串 #将字符串转换成列表的终极办法:eval()函数 -------> li=eval(s) -------------------------------------------------------------------------------------- #列表转换成字符串
li=["abc",("name","alex"),2222,"age"]
#把整个列表转换成字符串
s=str(li)
print(s) #['abc', ('name', 'alex'), 2222, 'age'] #仅把所有元素拼成字符串
s="".join(li)
print(s) #报错,要想把列表中的元素组成字符串的前提是这些元素要都是字符才行,数字,元组不行
2、另外一个就是文件操作,由于登陆次数是经常变动的,所以文件要经常更新,但是如何对文件内容进行更新操作?
这个在答疑课上找答案
3、作业题目:
'''
基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序 升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
'''
(1)自己第一次交的作业
----------------------------lockstate.txt------------------------------ ['aaa', 'b'] -----------------------------userinfo.txt------------------------------ [('alex', ''), ('abc', 'aaa'), ('oldboy', '2a2')] -----------------------------登陆程序.py------------------------------- f=open("userinfo","r",encoding="utf8")
userinfo=eval(f.read())
f.close()
flag=0 t=open("lockstate","r",encoding="utf8")
lockuser=eval(t.read())
t.close() for i in range(3):
username=input("请输入用户名:")
password=input("请输入密码:")
if username in lockuser:
print("this account is locked")
break
else:
for k in userinfo:
if username==k[0] and password==k[1]:
flag=1
break
if flag:
print("欢迎%s回来!" % username)
break
else:
if i <2:
print("invalid username or password")
if i == 2:
lockuser.append(username)
m=open("lockstate","w",encoding="utf8")
m.write(str(lockuser))
m.close()
print("Your account is locked")
break
路飞学城-Python开发集训-第1章的更多相关文章
- 路飞学城-Python开发集训-第3章
学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...
- 路飞学城-Python开发集训-第4章
学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...
- 路飞学城-Python开发集训-第2章
学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...
- 路飞学城-Python开发集训-第5章
面向过程:核心是过程二字,过程是解决问题的步骤,相当于设计一条流水线,是机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差 面向对象:核心是对象二字,对象就是特征与技能的结合体. ...
- 路飞学城-Python爬虫集训-第三章
这个爬虫集训课第三章的作业讲得是Scrapy 课程主要是使用Scrapy + Redis实现分布式爬虫 惯例贴一下作业: Python爬虫可以使用Requests库来进行简单爬虫的编写,但是Reque ...
- 路飞学城-Python开发-第一章
# 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...
- 路飞学城-Python爬虫集训-第一章
自学Python的时候看了不少老男孩的视频,一直欠老男孩一个会员,现在99元爬虫集训果断参与. 非常喜欢Alex和武Sir的课,技术能力超强,当然讲着讲着就开起车来也说明他俩开车的技术也超级强! 以上 ...
- 路飞学城-Python爬虫集训-第二章
本次爬虫集训的第二次作业是web微信. 先贴一下任务: 作业中使用到了Flask. Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模 ...
- 路飞学城-Python开发-第二章
''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...
随机推荐
- 微服务创建——Ubuntu搭建GitLab
Ubuntu呢,用的国产麒麟,可能对于用习惯了Windows操作系统的人来说使用UKylin会很难受吧,开发的人倒没什么,不过就是命令行的问题 那么,怎么搭建一个完整的GitLab呢,一步步来操作吧, ...
- xhr post请求
1. post提交的时候要设置post请求头,可以使用setRequestHeader(单独指定请求的某个http头) 2.通常在web开发中,使用表单提交数据的时候,一般是使用xml的格式进行的.可 ...
- phpstorm连接服务器,实时编辑上传文件到服务器
教程一:我的老版本,并且是汉化的,找到该位置 打开后:点击Configuration进行配置! 输入服务器的ip.端口.用户名.密码即可 打开编辑: 教程二:下面更新了一个新版本的(2018.2): ...
- nodejs+expressjs+ws实现了websocket即时通讯,服务器和客户端互相通信
nodejs代码 // 导入WebSocket模块: const WebSocket = require('ws'); // 引用Server类: const WebSocketServer = We ...
- 一个AI产品经理怎么看AI的发展
一个AI产品经理怎么看AI的发展 https://www.jianshu.com/p/bed6b22ae837 最近一直在思考这个问题,人工智能接下来的几年会有什么样的发展,是否真的能够在很多工作岗位 ...
- Android gravity和layout_gravity的区别
一.gravity和layout_gravity相同处 两者都是设置对齐方式的属性.内部的属性值相同. 根据英文意思也能理解其中的意思.如center_horizontal表示在水平方向上的位置为中间 ...
- Android string资源 包含 数学符号等特殊字符 及 参数占位符
定义:<?xml version="1.0" encoding="utf-8"?><resources> <string n ...
- VirtualBox网络连接方式
VirtualBox图形界面下有四种网络接入方式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接 ...
- 华为ENSP进行evn实验,尚不完整,但已经有RT1、RT2、RT3、RT4了
组网R1 -- CE12800 -- CE12800 --- R2 其中R1.R2是模拟VM的 R1的配置: interface GigabitEthernet0/0/0#interface Gig ...
- Oracle EBS FORM 设置块属性
declare blk_id BLOCK; begin blk_id := Find_block('ADRP_HEADER'); Set_block_property(blk_id,insert_al ...