基础很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课程的更多相关文章

  1. python课程单元三编程题讲解(上)

    目录 1.快乐的数字 2.凯撒密码I 3.凯撒密码II 4.括号配对检测 A @     下面向大家介绍一下我在学习python课程的一些题目的解法,如果大家有什么更好的解法请私信我.这里只显示题目与 ...

  2. 孤荷凌寒自学python第三十九天python 的线程锁Lock

    孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 当多个线程同时操作一个文件等需要同时操作某一对象的情况发生时,很有可能发生冲突, ...

  3. 孤荷凌寒自学python第三十八天初识python的线程控制

     孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...

  4. 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化

    孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...

  5. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  6. 孤荷凌寒自学python第三十一天python的datetime.timedelta模块

     孤荷凌寒自学python第三十一天python的datetime.timedelta模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.timedelta模块是一个表示 ...

  7. 孤荷凌寒自学python第三十天python的datetime.datetime模块

     孤荷凌寒自学python第三十天python的datetime.datetime模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.datetime模块包含了:datet ...

  8. 尚学python课程---15、python进阶语法

    尚学python课程---15.python进阶语法 一.总结 一句话总结: python使用东西要引入库,比如 json 1.python如何创建类? class ClassName: :以冒号结尾 ...

  9. 尚学python课程---13、python基础语法

    尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性  :作用:比如: ...

随机推荐

  1. mysql(5):主从复制和分库分表

    主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读 ...

  2. 算法竞赛入门经典第二版 回文词P49

    #include<bits/stdc++.h> using namespace std; char rev[]="A 3 HIL JM O 2TUVWXY51SE Z 8 &qu ...

  3. ubuntu18.04双卡机安装ubidia驱动遇到的坑

    在ubuntu 18的软件更新中选择英伟达驱动进行安装,输入nvidia-smi总是提示缺少驱动,未驱动之类的报错. 何解? 最初以为安装系统的问题,重装ubuntu也未果. 最后查了很多资料,找到一 ...

  4. 【Python】摄氏度与华氏度互相转化

    Python入门程序,大家可以举一反三,进行各种转换,比如单位转化,货币转化等等,自行发挥即可! 原理:  代码: Tempstr=input("请输入带有符号的温度值:\n")# ...

  5. Linux服务器时间设置及同步

    闲余:夏日将到,园区计划五一期间进行大面积的电网停电检修,运维同学因此将公司测试服务器提前关闭了.收假后,测试告诉我,他发现一个bug--一段定时任务程序未执行,我的第一反应就是--会不会是假期测试服 ...

  6. truffle编译合约常见问题及其在私链上的部署与交互

    一.初始化truffle项目 truffle init //初始化truffle项目文件夹 将写好的合约文件放到contract文件夹中 truffle  compile  //编译合约 (注意!! ...

  7. C# 委托实例实现的多种类型

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. idea中的springboot+gradle项目报错springboot configuration annotation processor not found in classpath

    idea中的springboot项目,打开某个类run.halo.app.config.properties.HaloProperties.java,报错(使用gradle编译): springboo ...

  9. Python - CentOS 下 yum 安装 python3

    1. 概述 CentOS 7 自带 python2(python 以下正文简写为 py, 命令行中依然是 python) 尝试用 yum 安装 py3 2. 环境 os centos7 3. 步骤 1 ...

  10. Python实现云服务器防止暴力密码破解

    云服务器防止暴力密码破解 云服务器暴露在公网上,每天都有大量的暴力密码破解,更换端口,无济于事,该脚本监控安全日志,获取暴力破解的对方ip,加入hosts黑名单 路径说明 描述 路径 登录安全日志 / ...