三天的Python课程
基础很sb但必须熟练掌握:
第一天就是Python的简单介绍与简单的接触。基本都是概念性的东西,需要知道一个非常便捷的IDE工具:pycharm,以后的编程就靠它了。还有就是%s和%d的格式化输出、运算符、及流程控制:if...else...;while...else...;for i in seq...else...
第二天的主要讲的是数据类型:数字,字符串,列表,元组,字典,集合及字符编码的详细介绍。
数字:转换为数字: int(10);转换为浮点数:float(10.3) ;是否全部是数字:msg.isdigit()
字符串:切片:msg[1:7];长度:len(msg);成员运算(in or not in):print('a' in msg);查看索引: print(msg.index(18));移除空白:msg.strip();切分split:msg.split('|');以...开头/结尾(startswith/endswith):print(msg.startswith('alex'));替换replace:print(msg.replace('a','B'));格式化输出%和format: print('my name is %s my age is %s' %('egon',18)) print('my name is {} my age is {}'.format('egon',18));合成join:print(':'.join(l));是否全部由字母组成:print(msg.isalpha())
列表:列表可变:msg[0]='abc';切片:msg[1:4];长度:len(msg);成员运算(in or not in):print('a' in msg);追加:msg.append('abc');删除:del msg[1] msg.remove('abc') msg.pop(1);插入:msg.insert(index,'abc');扩展添加:msg.extend([1,2,3,4]);清空列表:msg.clear();复制:msg.copy();反转:msg.reverse()
元组:切片:msg[1:7];长度:len(msg);成员运算(in or not in):print('a' in msg);查看索引: print(msg.index(18));统计元素个数: print(ages.count('abc'))
字典:增加: info['hobbies']=['read','music','play','sleep','eat'] ;长度:len(msg);key运算(in or not in):print('a' in msg);删除:print(info.pop('name')); 键keys(): print(info.keys());值values(): print(info.values());键值对items():print(info.items());获取值:print(info.get('name123',123));删除键值对: print(info.popitem());没有则新增,有则返原值:print(info.setdefault('hobbies',['read','music']));更新字典(字典):info.update(info_new);
集合:长度:len(msg);成员运算(in or not in):print('a' in msg);并集:|;交集:&;差集:-;对称差集:^;父集,子集:>,>= ,<,<=
字符编码: unicode =====encode ======>gbk # 存文件,unicode可以转化成任意编码 gbk====decode====>unicode
#打印三级菜单,打印下级时,记录到列表中;打印上级时,用pop取出,然后再打印最后字典的key
menu = {
'北京':{
'海淀':{'五道口':{'soho':{},'网易':{},'google':{}},
'中关村':{'爱奇艺':{},'汽车之家':{},'youku':{}},
'上地':{'百度':{},},
},
'昌平':{'沙河':{'老男孩':{},'北航':{},},
'天通苑':{},'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{"人民广场":{'炸鸡店':{}}
},
'闸北':{'火车战':{'携程':{}}
},
'浦东':{
},
},
'山东':{
},
} exit_flag = False
current_layer = menu layers = [menu] while not exit_flag:
for k in current_layer:
print(k)
choice = input(">>:").strip()
if choice == "b":
current_layer = layers[-1]
#print("change to laster", current_layer)
layers.pop()
elif choice not in current_layer:continue
else:
layers.append(current_layer)
current_layer = current_layer[choice]
#打印购物车程序 以列表的索引为主
1 #!/usr/bin/env python2
import sys
salary = int(raw_input('please input you salary:'))
products = [
['Iphone',5800],
['MacPro',12000],
['NB Shoes',680],
['Cigarate',48],
['MX',2500]
]
shopping_list = [] while True:
for p in products:
print products.index(p),p[0],p[1]
choice = raw_input("\033[32;1mPlease choose something to buy:\033[0m").strip()
if choice == 'quit':
print "You hava bought below stuff:"
for i in shopping_list:
print '\t',i
sys.exit('Goodbye!')
if len(choice) == 0:continue
if not choice.isdigit():continue choice = int(choice)
if choice >= len(products):
print "\033[31;1mCloud not in the range!\033[0m"
continue
pro = products[choice]
if salary >= pro[1]:#mean you can afford this
salary = salary - pro[1]
shopping_list.append(pro)
print "\033[34;1mAdding %s to shopping list,you have %s left.\033[0m" % (pro[0],salary)
else:
print "\033[31;1mThe price of %s is %s,yet your current balance is %s,so try another one.\033[0m" % (pro[0],pro[1],salary)
第三天是文件处理和函数基础,感觉有点难度了。
# 文件的处理机制
#打开
f=open('a.txt',mode='r',encoding='utf-8') #变量赋值
#读/写
data=f.read()
print(data)
#关闭
del f #回收python资源,python回收机制自动处理,不用写
f.close() #回收操作系统的资源
del f
print(f)
#流程分析:
#1:向操作系统发起系统调用
#2:操作系统打开这个文件,返回一个文件句柄给应用程序
#3: 在应用程序中把文件句柄赋值给一个变量
#注意两点:
#1:打开一个文件对应两部分,一个Python级别的文件句柄,另外一个是操作系统打开的文件(默认
# 打开文件的编码是以操作系统的编码为准的,除非open()指定encoding='编码' )
#2:当文件操作完毕后,应该回收两部分资源,
#del f:回收应用程序资源(python解释器自动的垃圾回收机制已经替我们做了)
#f.close:回收操作系统
#上下文管理with 自动关闭系统的占用f.close()
with open('a.txt',mode='r',encoding='utf-8') as f:
print(f.read())
# 文件打开的模式
#r:默认的打开模式,只读,文件不存在则报错,rt:txt
f=open('a.txt',encoding='utf-8') #默认就是只读模式
print('===>',f.read()) #读所有,bytes---decode('utf-8')--->unicode(str) 从硬盘读出来就是bytes类型,read出来是python的字符串就是unicode,python3的字符串是unicode
print(f.readlines()) #读所有,结果放入列表中
print(f.readline(),end='') #一次读一行 print函数默认有个换行符'\n'
f.close()
#w:只写模式,如果文件存在则清空,如果文件不存在则新建
#a:追加写模式,如果文件存在则把光标移动到文件末尾,如果文件不存在则新建
#b:以bytes的形式去操作文件内容,不能指定编码 只有字符串类型才有编码
with open('a.txt',mode='rb') as f:
data=f.read()
print(data.decode('utf-8')) #bytes类型转成字符串unicode
#了解部分
print(f.readable()) #判断文件是否可读
print(f.writable()) #判断文件是否可写
f.closed() #文件是否关闭
f.encoding() #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name() #查看文件名
#以文本t的模式读文件,n代表的是字符的个数,读3个字符,其他都是字节
#以b的模式读文件,n代表的是字节的个数
#tell:告诉当前光标的位置
#seek:移动光标
#0:文件开头 可以b模式,也可以t模式
#1:当前位置 只能基于b模式
#2:文件末尾 只能基于b模式
#tail -f access.log
import time
with open('access.log','rb') as f:
f.seek(0,2)
while True:
line=f.readline()
if line: #读到就打印 没有读到就sleep一下
print(line.decode('utf-8'),end='')
else:
time.sleep(0.2)
#truncate 截断文件 写操作 r模式就报错 w就没有截断这一说直接清空了 只能a模式,就文件开头开始,后面删掉
#文件的修改 硬盘上的内容没有改这一说,直接就是新的内容直接覆盖掉老的文件,会生成新文件.swap,然后删除原文件,重命名至原文件。内存可以改
#方式一(占用内存过大,仅适用于小文件):把硬盘中文件的数据全部读入内存,然后在内存里进行修改,最后保存
import os
with open('e.txt','r',encoding='utf-8') as read_f,\
open('.e.txt.swap','w',encoding='utf-8') as write_f:
data=read_f.read()
# print(type(data)) #str
data=data.replace('alex','SB')
write_f.write(data) os.remove('e.txt')
os.rename('.e.txt.swap','e.txt')
#方式二:一行一行地读,一行一行地改
import os
with open('e.txt','r',encoding='utf-8') as read_f,\
open('.e.txt.swap','w',encoding='utf-8') as write_f:
for line in read_f:
line=line.replace('SB','alex')
write_f.write(line) os.remove('e.txt')
os.rename('.e.txt.swap','e.txt')
函数基础的网址:http://www.cnblogs.com/DemonAngel/p/7581862.html
三天的Python课程的更多相关文章
- python课程单元三编程题讲解(上)
目录 1.快乐的数字 2.凯撒密码I 3.凯撒密码II 4.括号配对检测 A @ 下面向大家介绍一下我在学习python课程的一些题目的解法,如果大家有什么更好的解法请私信我.这里只显示题目与 ...
- 孤荷凌寒自学python第三十九天python 的线程锁Lock
孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 当多个线程同时操作一个文件等需要同时操作某一对象的情况发生时,很有可能发生冲突, ...
- 孤荷凌寒自学python第三十八天初识python的线程控制
孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...
- 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- 孤荷凌寒自学python第三十一天python的datetime.timedelta模块
孤荷凌寒自学python第三十一天python的datetime.timedelta模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.timedelta模块是一个表示 ...
- 孤荷凌寒自学python第三十天python的datetime.datetime模块
孤荷凌寒自学python第三十天python的datetime.datetime模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.datetime模块包含了:datet ...
- 尚学python课程---15、python进阶语法
尚学python课程---15.python进阶语法 一.总结 一句话总结: python使用东西要引入库,比如 json 1.python如何创建类? class ClassName: :以冒号结尾 ...
- 尚学python课程---13、python基础语法
尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性 :作用:比如: ...
随机推荐
- Module build failed: TypeError: this.getResolve is not a function at Object.loader sass报错!(亲测有效!~~)
vue安装node-sass编译报错 在搭建vue脚手架 或者是在vue项目中,想使用sass的功能,需先安装如下 npm install node-sass --save-dev //安装node- ...
- Makefile export
1) 1.在(parent,上层的)makefile中export出来变量,子makefile(sub make)中,是可以访问的. 2. 而同一级别的makefile(可通过makefile中内置变 ...
- 如何获取object数据的描述符
const data = { portLand: '78/50', Dublin: '88/52', Lima: '58/40' } Object.defineProperty(data, 'Lima ...
- 安装ipython[win/linux]
首先以win7 64位系统, python2.7.9为例,linux见底部 1.下载材料http://files.cnblogs.com/files/smileyes/ipython-win64.z ...
- TCP的状态转换
TCP的状态转换图 手写的状态转换图 一.服务端状态变迁: 服务端创建套接字之后调用listen函数将套接字有一个未连接的主动套接字转换为被动套接字,指示内核应接受指向该套接字的连接请求,套接字状态 ...
- Eugeny and Array(思维)
Eugeny has array a = a1, a2, ..., an, consisting of n integers. Each integer ai equals to -1, or to ...
- springmvc validator和springContext validator的区别
1.springContext validator 依赖于代理实现 MethodValidationInterceptor Set<ConstraintViolation<Object&g ...
- bugku 头等舱
先查看题目发现页面是这一个 然后打开后台F12 发现后台什么也没有 然后使用抓包burpsuit 然后发现答案就在其中 (首先右键转到repeater然后点击go)
- 1.0 Jmeter 安装运行
1.百度搜索JDK进行下载JDK安装与环境变量配置http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html ---- 在JDK安装完 ...
- Atcoder Beginner Contest152F(DFS+状压DP)
二维状压写成一维状压,省略加上第i条边这一维 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace st ...