python学习笔记第一周
目录:
一、基础概念
1、变量与常量介绍
2、引号的使用
3、条件判断
4、while与for循环
5、input输入
6、getpass模块
7、python编码
二、作业
1、个人登录系统
2、多级目录
三、自学部分
1、异常处理
2、字典的键值引用
3、字典写入
4、列表插入
5、字符串处理
内容:
一、基础概念
1、关于变量与常量
在python中,只有变量没有常量,变量名要求数字,字母、下划线组成,但是数字不能作为变量名,例如:
name = ‘xiaopi’
name_of_thisnumber = 123
常量可以通过@方式表示,但是也可以更改
2、引号的使用
在python中,可以使用' 或者 “ ,和bash不同,在python中,'和”直接没有任何区别,在引号过程中可以使用‘和“,只是要求成对出现,当内容需要嵌套时,’和”需要注意,‘’‘和“”“表示多行注释,例如
’‘’
name = 'xiaopi'
age = 18
job =IT
‘’‘
此时,也可以将''' 变为”“”,效果一致,也可以将该引号部分赋值,这时可以按照固定格式输出
msg =
’‘’
name = 'xiaopi'
age = 18
job =IT
‘’‘
print(msg)
3、条件判断
if condition1:
xxx
elif condition2:
yyy
else:
zzz
通过if else条件判断,可以针对不同的条件显示不同结果
4、while与for循环
while True 基本用法,其中True可以改为其他条件,当编写while循环时,需要确定条件为有限值,防止该循环变为无限循环状态,同时在while同级的情况下,可以写成:
while True:
xxxx
else:
yyy
的形式,当满足某一条件后,可以通过break跳出该级循环也可以通过conitue跳出本次循环
for 表示有限循环次数,可以跟range来规定循环的次数:
for i in range(10):
print(i)
会打印0-9,十个整数,range默认从0开始n-1次结束,可以通过传入参数的方式来限制循环的次数 range(1,10,2)表示从1-9 同时间隔为2,表示1、3、5、7、9
5、input表示
在python3中,可以通过name = input(’pls input your name:‘)的方式直接要求用户输入,默认输入为字符串格式,如果需要数值格式,可以使用 name = int(input(’pls input your name:‘))方式将用户的输入转换成数值格式
input中输入如果不匹配会直接报错
6、getpass模块
在python中有getpass标准模块,在调用时可以在输入时防止其他人通过查看屏幕的方式获取:
import getpass
password = getpass.getpass(’input your password:‘)
7、python的编码
最早的ASII码为255个字符中的128个表示,但是由于除了英文外需要表示其他格式的字符,进行了优化,最终ISO组织规定了Unicode编码,通过2个字节表示所有的字符,但是由于这种方式会产生多余的内存空间占用,所以现在的方式采用utf-8模式表示,对应英文占用1个字节,对中文这种占用3个字节,utf-8的压缩方式保存编码,既节约资源,又能保存多种格式,是目前采用的最有效的编码方式
二、作业
个人登录系统:
如果三次登录失败就锁定,如果登录成功就打印欢迎信息
count = 0
list_black = []
dict_user = {} try:
#通过try方式,当首次登录没有形成黑名单时不会报错继续执行
with open('black-list.txt') as black_file:
for item in black_file.readlines(): #从文件中全部读入黑名单信息
b_name = item.split(' ')[0].strip() #将黑名单信息依次取出放入下面列表中
list_black.append(b_name) except IOError:
print('Error: the file is empty!') with open('user.txt') as user_login: #打开用户记录文件
for u_item in user_login.readlines():
u_name = u_item.split(' ')[0].strip()
u_pass = u_item.split(' ')[1].strip()
dict_user[u_name] = u_pass #将用户名与密码以字典方式存入
while count < 3:
name = input('input your name: ')
#password = getpass.getpass('input your password: ') if name not in list_black:
password = input('input your password: ') #保证在用户已在黑名单前就跳出,无需输入密码
if name in dict_user.keys(): #查看name是否在用户字典的键值中 if password in dict_user.values(): #确保用户字典的值正确
print('welcome to login....')
id_login = 1 #当成功登录后填写该标志,避免循环退出后该用户名写入黑名单
break else:
count += 1 #当密码错误时计数器加1
continue
else:
count += 1
continue
else:
print('hold on...')
break with open('black-list.txt','a') as black_file:
if name not in list_black and id_login !=1: #保证错误的用户名以及没有登录成功的用户名写入黑名单
black_file.write(name)
black_file.write('\n')
作业二
多级目录,可以自由选择层级同时带有退出按键:
msg = '''
初始界面会打开输入界面,要求输入,如果输入为1,选择一级目录
如果输入为根据出现的结果选择对应的省份,会出现对应的二级目录
在根据出现的各级市选择会显示各区,如果需要退出请按q
如果需要回到上级目录请按e
如果需要回到主目录请按d ''' print(msg)
CN = {
'shandong' : {
'qingdao' : ['shinan', 'shibei', 'sifang', 'licang'],
'yantai' : ['zhifu', 'laishan', 'wuping' , 'fushan' , 'kaifaqu'],
'jinan' : ['shizhong' , 'lixia', 'licheng', 'changqing'], },
'hebei' : {
'shijiazhuang' : ['qiaodong', 'qiaoxi', 'xinhua'],
'baoding': ['yixia', 'nanshi' , 'xinshi', 'xiongxian', 'gaobeidian', 'shunping', 'xushui', 'dingxing'], },
'jiangsu': {
'nanjing': ['xuanwu', 'baixia', 'qinhuai', 'gulou', 'pukou'],
'suzhou': ['pingjiang', 'canglang', 'xiangcheng', 'gaoxin', 'wuzhong']
} } sheng_key = ''
shi_key = '' while True:
if shi_key == 'q' or sheng_key == 'q': #保证shi_key sheng_key选择q时可以跳出整个循环
break
u_key = input('请选择: ')
if u_key == '1': #一级循环的入口
for i in CN.keys(): #打印省级目录
print(i)
while True:
if shi_key == 'q' :
break
elif shi_key == 'd':#保证shi_key选择d时跳出前将shi_key变量值制空,保证从一级目录向下跳转时不会因为携带变量而导致循环错误
shi_key = ''
break
elif sheng_key == 'e' or sheng_key == 'd': #保证sheng_key在选择e 和d时在退出一级目录不会因为携带变量导致循环错误
sheng_key = ''
break
sheng_key = input('请选择省: ')
if sheng_key in CN.keys(): #打印对应的市级目录
for j in CN[sheng_key].keys():
print(j) while True:
shi_key = input('请选择市: ') #市级对应的区
if shi_key in CN[sheng_key].keys():
for k in CN[sheng_key][shi_key]:
print(k)
elif shi_key == 'e' or shi_key == 'd' or shi_key == 'q':#选择该数值跳出该层级循环 break
else:
print('wrong input shi!')
elif sheng_key == 'e' or sheng_key == 'd':#保证sheng_key 退出前脱去变量参数,保证从上级向下时不会因为该变量导致循环错误
sheng_key = ''
break
elif sheng_key == 'q':
break
else:
print('wrong input sheng!')
elif u_key == 'q':
break
elif u_key == 'e' or u_key == 'd':
print('this is the top !')
else:
print('wrong input!')
三、自学部分
1、异常处理
try:
exception:
通过这种方式将处理出现异常的情况,可以避免发生异常时程序异常退出
2、字典的键与值的引用
dict.keys()表示索引键
dict.values()表示值
3、字典的写入
dict1为字典名:
dict1[key] = value
这种方式可以对字典插入键值对
4、列表的插入
list_black.append(b_name) 其中list_black是事先定义的空列表,b_name为需要插入的值,该方式会将值插入到最后
5、字符串处理
string.split() #按照()里的内容进行分割,可以为string.split(‘:’) string.split(' ')
string.strip() #去掉两边的空格,还有lstrip()与strip()分别表示去掉左右的空格
python学习笔记第一周的更多相关文章
- python学习笔记第二周
目录 一.基础概念 1.模块 1)os模块 2)sys模块 2.pyc文件 3.数据类型 1)数字 2)布尔值 3)字符串 4.数据运算 5.运算符 6.赋值运算 7.逻辑运算 8.成员运算 9.身份 ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- Python学习笔记 -- 第一章
本笔记参考廖雪峰的Python教程 简介 Python是一种计算机高级程序设计语言. 用Python可以做什么? 可以做日常任务,比如自动备份你的MP3:可以做网站,很多著名的网站包括YouTube就 ...
- Python学习笔记第九周
目录: 一.基础概念 1.paramiko模块 2.进程与线程 1.进程 2.线程 3.进程与线程的区别 4.Python GIL 5.thread模块 6.Join与Daemon 7.线程锁(Mut ...
- Python学习笔记 第一课 列表
Python的列表就像是一个数组: 一.创建列表 movies=["The Holy Grail","Then Life of Brian","The ...
- Python学习笔记第一天
Python是一门通用脚本语言,灵活,实用,而不用关心本身的实现逻辑! Python通常在linux下编程,有两种方式!当然,为了使用linux文本编辑,所选模式为 非 交互模式! 交互式:简单,方便 ...
- Python学习手册 :Python 学习笔记第一天
获取当前目录路径: import os os.getcwd() 在输入python程序时,尽量让不是嵌套结构的语句处于最左侧,要不然系统或许会出现"SyntaxError"错误 获 ...
- python学习笔记第一节
一.HelloWorld #!/usr/bin/env python #-*- coding:utf-8 -*- print("HelloWorld!") 二.用户交互 #!/us ...
- Python学习笔记第一讲
1.pycharm快捷键 撤销与反撤销:Ctrl + z,Ctrl + Shift + z 缩进.不缩进:Tab.Shift + tab 运行:Shift + F10 取消注释,行注释:Ctrl + ...
随机推荐
- [codechef July Challenge 2017] Calculator
CALC: 计算器题目描述大厨有一个计算器,计算器上有两个屏幕和两个按钮.初始时每个屏幕上显示的都是 0.每按一次第一个按钮,就会让第一个屏幕上显示的数字加 1,同时消耗 1 单位的能量.每按一次第二 ...
- java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2). java. ...
- JavaScript 上万条数据 导出Excel文件 页面卡死
最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var ...
- drozer安装使用教程(Windows)
drozer和adb一样,又不是新出的工具,本不该出了这么久还要由我这样半懂不懂的再写篇东西了.但是还是一样每次使用都得百度和筛选半天,所以记下来算给自己看.以后看到我还写些老掉牙的东西都是这个原因, ...
- windows 下的命令操作
删除文件夹 RD /S D:\aaaaa 删除文件夹下的文件 DEL D:\aaaaa\*.*
- 动态规划-最长单调递增子序列(dp)
最长单调递增子序列 解题思想:动态规划 1.解法1(n2) 状态:d[i] = 长度为i+1的递增子序列的长度 状态转移方程:dp[i] = max(dp[j]+1, dp[i]); 分析:最开始把d ...
- Python之路-python基础二
本章内容: 一.编码格式 二.常用数据类型 三.字符串常用方法 四.列表常用方法 五.数据运算 六.课后作业 编码格式: ASCII A ...
- fast-rcnn里的一些具体内容
NMS:Non-Maximum Suppression(非极大值抑制) 假设从一个图像中得到了2000个region proposals,通过在RCNN和SPP-net之后我们会得到2000*4096 ...
- Android : 修改内核源码 and 编译、打包成新的boot.img
一.Android内核源码的下载: 1.Google GIT地址: $ git clone https://android.googlesource.com/kernel/common.git $ g ...
- 深入理解java虚拟机---内存分配策略(十三)
转载请注明原文地址:https://blog.csdn.net/initphp/article/details/30487407 Java内存分配策略 使用的ParNew+Serial Old收集器组 ...