2015-12-04_11S-01day

二、初始python

1、第一句python代码

>>> print ‘hello world!!!‘
hello world!!!

2、python解释器声明

#!/usr/bin/env python

3、编码以及编码声明

# _*_ coding:utf-8 _*_

4、注释

单行注释#

‘‘‘ ‘‘‘多行注释

5、脚本参数

import

sys.argv  #将输入的参数$0,$1...放到一个列表当中,类似于shell的$*

6、字节码

如果在一个文件中导入文件m.py文件,那么产生m.pyc文件,如果m.py文件和m.pyc文件的功能相同,那么优先导入m.pyc文件

7、变量

代指内存里某个地址中保存的内容

name1="changqiangqiang"

name2=name1

如果此时name1改变,但是name2不变

但是如果name1不是字符串而是集合,那么name2也会改变;

在C语言中,没有字符串,但是有字符,比如hello由5个字符组成,由于python是由c实现的,所以python的字符串由C的字符数组[‘h‘,‘e‘...‘o‘]组成。

字符串特性:一旦修改,就需要重新创建,(中心开辟空间)。

万恶的"+"号:如果字符串使用“+”号叠加,每一个"+"号,都需要重新到内存中开辟一块空间,导致性能下降.

数据结构有两种类型:

第一种是直立型:只要值改变,就需要重新开辟空间;

第二种是引用类型:值改变,不需要重新开辟空间;

python缓冲池的概念

在一定的数值范围内,即咋缓冲池内的字符串,相同变量指向相同的字符串,id值相同。

python解释器执行的过程:加载内存-->词法分析-->语法分析-->编译-->字节码(c语言为机器码)-->执行

8、python的输入输出

name=raw_input(">>>")

import getpass

pwd=getpass.getpass(">>>")

9、流程控制

"=="只表示值相同,"is"标志内存地址相同

if...

elif ...

else...

10、初始基本数据类型

范围两类:

第一类是单值:数字、字符串、布尔值

第二类是集合:列表、元组、字典、哈希表(set)

字符串:万恶的字符串拼接(+),不要用,使用字符串格式化替代

两种字符串格式化:

第一种:name="i am %s" %(‘QQ‘)

第二种:name="i am {0} age{1}"

print name.format(‘alex‘,18)

字符串的切片:name=‘hello‘    name[0]=‘a‘    name[0:2]=‘he‘

len(name)-->多少个字符    name[-1]==name[len(name)-1]

字符串的分割:names="QQ,hello"    name.split(",")=["QQ","hello"]-->字符分割的结果为列表

创建的列表本质上讲都是对象,字符串和列表都支持索引

总结:

字符串的常用功能:

移除空白

分割

长度

索引

切片

列表的常用操作:列表内容修改,内存地址不发生改变(id值相同),不会创建新的内存空间

索引

切片

追加

删除

长度

循环

包含

转换为字符串(与分割相反)

str、list和tuple的相同点和不同点:

相同点:切片、索引、len()、包含、循环;

不同点:str修改后重新开辟空间,list修改后内存地址不变,tuple不允许修改;

字典:键值对,字典是无序的

字典的循环: for k,v in name.items():

print k,v

12、初识文本操作

找到文件

打开文件:file_obj=file(文件路径,模式)

文件操作,读写:file_obj.read()    #将所有写入内存

file_obj.readlines()    #不仅读入内存,并不以行为一个列表

模式:    r-->读    w-->如果文件存在,则将其重写    a-->追加    w+(读写)

循环:

for line in file_obj.readlines:    #每次循环,只读一行,避免全部读入内存

for line in file_obj.xreadlines():    #迭代器

file_obj.write()

file_obj.writeline()

file_obj.close()    #关闭文件

作业:

第一份作业:

要求:编写登陆接口,输入用户名和密码,认证成功后显示欢迎信息,输错三次后锁定。

[email protected]:/scripts/seminor11/day01# cat login.py
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import getpass
import sys
chiper_file=‘account.txt‘

limit_times=0

lock_file=‘lock_file.txt‘

chiper_dict={}
lock_file_list = []
while limit_times < 3:
username=raw_input(‘请输入用户名:‘).strip()
f = file(lock_file,‘r‘)
for line in f.readlines():
line = line.strip()
lock_file_list.append(line)
f.close()
if username in lock_file_list:
print "\033[41;37m这个账号已被锁定,不能登陆.请联系管理员解锁!!!\033[0m"
sys.exit()
f = file(chiper_file,‘rb‘)
for line in f.readlines():
line = line.strip()
line_list=line.split(‘;‘)
chiper_dict[line_list[0]]=line_list[1]
if not chiper_dict.has_key(username):
print "该用户名不存在,请重新输入!!!"
limit_times +=1
continue
password=getpass.getpass(‘请输入密码:‘).strip()
if chiper_dict[username] == password:
print "Welcome to login my system,哈哈哈!!!"
sys.exit()
else:
print "认证错误,请重新输入!!"
limit_times += 1
continue
else:
f.close()
print "用户名被锁定"
f = file(lock_file,‘ab‘)
f.write(‘{0}{1}‘.format(username,‘\n‘))
f.close()

第二份作业:

三级菜单

可依次选择进入各子菜单

所需知识:列表,字典

包含流程图,README

[email protected]:/scripts/seminor11/day01# cat menu.py
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
Province=(‘陕西‘,‘甘肃‘,‘广东‘)
City={‘陕西‘:[‘西安‘,‘咸阳‘,‘延安‘,‘汉中‘],
‘甘肃‘:[‘兰州‘,‘定西‘,‘天水‘,‘平凉‘],
‘广东‘:[‘广州‘,‘深圳‘,‘珠海‘,‘汕头‘],
}

County={‘定西‘:[‘通渭‘,‘陇西‘,‘临洮‘],
‘西安‘:[‘临潼‘,‘长安‘,‘太白‘],

}

province=‘‘‘
(1)、%s
(2)、%s
(3)、%s
‘‘‘ %Province

while True:
print province
num1_province=int(raw_input(‘请输入你想要查看的省份的编号:‘))

if not num1_province in range(1,len(Province)+1):
print ‘You have entered a wrong number,please try again!‘
continue
print ‘\n你想要查看的省份是%s,其下属市级单位如下:\n‘ %(Province[num1_province -1])

for i in range(len(City[Province[num1_province -1]])):
print "%s、%s" %(i + 1,City[Province[num1_province -1]][i])
print "%s、%s" %(0,‘返回上一级‘)

num1_city=int(raw_input(‘请输入你想要查询的城市的编号:‘))

if not num1_city in range(0,len(City[Province[num1_province -1]])+1):
print ‘You have entered a wrong number,pliase try again!!‘
elif num1_city == 0:
continue

for i in range(len(County[City[Province[num1_province -1]][num1_city -1]])):
print "%s、%s" %(i+1,County[City[Province[num1_province -1]][num1_city -1]][i])

again=raw_input(‘你是否想继续查询(yes/no):‘).strip()
if again == ‘no‘:
break
else:
pass

时间: 2024-08-04 22:12:51

2015-12-04_11S-01day的相关文章

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12

#VSTS日志# 2015/12/10 – 终于可以删除工作项了

最近的更新不少,废话少说,直接上干货 定制工作项字段 本周的更新后,所有的用户都可以在vsts上直接给工作项添加字段了,具体内容包括– 添加新字段(日期,字符串,整形,数字)– 字段显示位置配置– 过程模版继承– 过程模版安全性配置 很多人都知道,在vsts在线版上一直缺少工作项定制能力,这次的更新一定让很多人兴奋,但是我们的工作还没有完,后续我们会逐步完成字段下拉菜单,工作流配置,html字段,添加全新的工作项类型等功能.关于本功能的具体内容,请参考以下博客 http://devopshub.

【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)

写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shader的艰难,在群里也见了非常多人提出的问题. 我认为学习Shader还是一件有规律可循的事情,但问题是中文资料难觅,而大家又不愿意去看英文...这对我有什么优点呢?强迫我对知识进行梳理,对细节问题把握更清楚. 第二个原因你懂的. 关于本书的定位问题: 面向Unity Shader刚開始学习的人,但要

分布式技术一周技术动态 2015.12.27

分布式系统实践 1. Kafka深度解析 http://www.jasongj.com/2015/01/02/Kafka%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/ 要点: 这篇文章深入的讲解了kafka的架构设计, 数据复制算法以及kafka的性能等多个方面, 是理解和学习kafka非常难得的一篇好文章, 推荐给大家. 2. 解密阿里巴巴高可用架构技术——“异地多活” http://mp.weixin.qq.com/s?__biz=MzAwNjQwNzU2NQ==

360实习工作日志2015.10 ~ 2015.12

RE: 焦诚 ~ 日报 - 由 焦 诚 在 5 个月 之前添加 2015-10-131.利用计算平台统计2015-09-28 => 2015-10-11 共14天的spe_num=502306的云查杀日志,1天的结果在10万条-20万+条不等,两周的结果在200万条左右.由于结果数据量较大,暂时无法从计算平台直接下载数据,下载会报内存溢出的错误.2.开始学习mongodb   RE: 焦诚 ~ 日报 - 由 焦 诚 在 5 个月 之前添加 2015-10-141.计算云查杀日志2015-09-2

2015 12

新浪微博:@晓东日语 欢迎关注,超多日语学习资料在微博@晓东日语 2015 年 12 月 N1 级真题 日语 N1 词汇真题(2015 年 12 月) 問題 1_の言葉の読み方として最もよいものを.1?2?3?4から一つ選びなさい. 1決勝の素晴らしい試合に観客は興奮した. 1こうふん 2きょうふん 3 きょうぶん 4こうぶん 2この説は.鈴木氏が 30 年前に初めて唱えた. 1たたえた 2となえた 3かなえた 4うったえた 3この地域における主要な産業の変遷について調べた 1へんさん 2へんさ

2015/12/29 eclipse 设置要点 空间 项目 类 eclipse汉化

开始使用eclipse,双击eclipse.exe文件,启动eclipse.程序会显示一个工作空间的对话框,工作空间用来存放你的项目文件,你可以使用程序默认的,点击确定即可,你也可以重新选择一个文件夹来存放你的文件,那点击浏览,重新指定你的项目文件存放的目录: 10 进入eclipse.打开文件|新建|新建java项目,然后在项目名称一栏填写你的项目名称: 11 创建一个java类:文件菜单下打开“新建”,打开“新建类”,有两个地方需要填写,一是选择源文件夹,就是刚才你创建的hello worl

JavaSciptj高级程序设计 2015/12/28

第三章 基本概念 一.区分大小写 ECMAScript中的一切(变量.函数名和操作符)都区分大小写 二.标识符(变量.函数.属性的名字.函数的参数) (1)第一个字符必须是一个字母.下划线(-)或一个美元符号($) (2)其他字符可以是字母.下划线.美元符号或者数字 (3)采用驼峰大小写格式:第一个字母小写,剩下的每个单词的首字母大写 例如:firstSecond 三.注释 单行注释: // 多行注释: /* * * */ 四.严格模式 为javacript定义了一种不同的解析与执行模型.在严格

2015/12/26 十六、 八 、二 进制转十进制

十六进制41BD 转换十进制4*16^3+1*16^2+11*16^1+13*16^0=16384+256+176+13=16829 十六进制A10C.8 转换十进制10*16^3+1*16^2+0*16^1+12*16^0+8*16^-1=40960+0+16+12+0.5=41228.5 八进制146.1 转换成十进制1*8^2+4*8^1+6*8^0+1*8^-1=64+32+6+0.125=102.125 八进制5312.2 转换成十进制5*8^3+3*8^2+1*8^1+2*8^0+2

[比赛]2015/12/25BNU新生赛

网络同步做了半个小时,然后就拉肚子了……嗯…… A:不解释……5min 1A 1 #include <algorithm> 2 #include <iostream> 3 #include <iomanip> 4 #include <cstring> 5 #include <climits> 6 #include <complex> 7 #include <fstream> 8 #include <cassert&g