《转》python
转自http://www.cnblogs.com/BeginMan/archive/2013/06/03/3114974.html
1、print语句调用str()函数显示,交互式解释器调用repr()函数来显示对象
>>> s='python'
>>> s
'python' #repr(),显示结果呈现单引号
>>> print s #str().没有单引号
python
>>> repr(s)
"'python'"
>>> str(s)
'python'
str()主要显示给人看,repr()显示个机器和畜生看。
print语句会默认给每一行加上换行符,只要在print语句的最后添加一个逗号(,)就可让结果排列在一行。
2、raw_input():
读取标准输入,并把结果给指定变量,如:name=raw_input('your name:')
3、一些语句
(1)、if、if .. else ..、if ..elif..else..
elif即‘else if ’,注意在Django中不存在 elif 模板标签
(2)、while循环
循环控制,最好依赖 ..True..Flase,如下:(《DjangoBook第八章例子》)
#coding=utf-8
'''
Created on 2013-4-17
@author: BeginMan
'''
db={}
def newuser():
prompt='login desired:'
while True:
name=raw_input(prompt)
if db.has_key(name):
prompt='name taken,try another'
continue
else:
break
pwd=raw_input('password:')
db[name]=pwd def olduser():
name=raw_input('name:')
pwd=raw_input('password:')
if pwd==db.get(name):
print 'welecom back ',name
else:
print 'login error' def showmenu():
prompt="""
-----------------
(N) new user login
(E) existing user login
(Q) quit
-----------------
Enter choice:
"""
done=False
while not done:
chosen=False
while not chosen:
try:
choice=raw_input(prompt).strip()[0].lower()
except(EOFError,KeyboardInterrupt):
choice='q'
print '\n you picked:[%s]' %choice
if choice not in 'neq':
print 'invalid option,try again'
else:
chosen=True
if choice=='q':done=True
if choice=='n':newuser()
if choice=='e':olduser() if __name__=='__main__':
showmenu()
(3)、for循环
不同C#、java、C、等编程语言,如js中:for(var i=0;i<s.length;i++){....};python中它更像C#中的foreach():
>>> dic={'name':'BeginMan','job':'pythoner','age':22}
>>> for obj in dic.items():
print obj ('age', 22)
('job', 'pythoner')
('name', 'BeginMan')
(4)、range()/len()使用
这两个方法用的很多,如:
>>> for obj in range(5):
print obj, 0 1 2 3 4
>>> for obj in [0,1,2,3,4]:
print obj, 0 1 2 3 4
|
首先了解下range()。它很像JavaScript里面随机函数,在python里也这样称呼。
>>> help(range)
Help on built-in function range in module __builtin__: range(...)
range([start,] stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
当然,我们也可以这样:
>>> for obj in range(5,10):
>>> print obj, 5 6 7 8 9
range()经常和len()函数一起使用用于字符串索引,如:
>>> name='BeginMan'
>>> for obj in range(len(name)):
print '(%d)' %obj,name[obj] (0) B
(1) e
(2) g
(3) i
(4) n
(5) M
(6) a
(7) n
|
enumerate()的强势围攻,
上面的例子循环有些约束,Python2.3推出了enumerate()函数来解决这一问题,enumerate:枚举 的意思:
>>> for i,j in enumerate(name):
>>> print i,j B
e
g
i
n
M
a
n
4、列表解析
aaarticlea/png;base64,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" alt="" />
5、文件操作
打开文件:handle=open(file_name,access_mode='r')
如果打开成功,一个文件对象的句柄将会被返回,就可以通过它的句柄进行一系列的操作。
>>> dic={'name':'BeginMan','job':'pythoner','age':22}
>>> for obj in dic.items():
print obj ('age', 22)
('job', 'pythoner')
('name', 'BeginMan')
附:遍历数组的两种方式
第一种,最常用的,通过for in遍历数组
>>> name='BeginMan'
>>> for obj in range(len(name)):
print '(%d)' %obj,name[obj] (0) B
(1) e
(2) g
(3) i
(4) n
(5) M
(6) a
(7) n
第二种,先获得数组的长度,然后根据索引号遍历数组,同时输出索引号
colours = ["red","green","blue"] for i in range(0, len(colours)):
print i, colour[i] # 0 red
# 1 green
# 2 blue
《转》python的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- 如何在普通用户权限cmd怎么使用命令行变为管理员权限
这两天在弄MySql,由于我下载的是免安装版本,环境自己配置了一下.有强迫症不喜欢某些服务打开在我不需要的时候,我一般都设置为手动,但是每次使用数据库时都要使用net start mysql启动MyS ...
- (52) C# 串口通讯
一.串口通讯基本参数 1.波特率:每秒传输n个多少个二进制位. 例如 9600 b/s = 1200 B/s= 1.172KB/S 2.传输数据格式 数据格式由起始位(start bit).数据位 ...
- jmter 5.1 中文
一.jmeter5.0下载解压后,默认的界面是英文版的,许多人觉得不方便,想要汉化,jmeter是不需要安装汉化包的,通过修改配置文件即可:1.找到jmeter解压后的文件夹,例如我是安装在D:\De ...
- Codeforces451A-Game With Sticks-思维
After winning gold and silver in IOI 2014, Akshat and Malvika want to have some fun. Now they are pl ...
- 专题:『systemd』
[COMMAND] Systemd Daemons: systemd networkd journald logind "user session" Systemd units: ...
- Django框架(十)—— 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询、聚合查询、分组查询、F查询与Q查询
目录 多表操作:增删改,基于对象/双下划线的跨表查询.聚合查询.分组查询.F查询与Q查询 一.创建多表模型 二.一对多增删改表记录 1.一对多添加记录 2.一对多删除记录 3.一对多修改记录 三.一对 ...
- Spring MVC源码分析(一):ContextLoaderListener的设计与实现
ContextLoaderListener在我的Spring源码分析(一):从哪里开始看spring源码这篇文章,分析过在web容器,如tomcat,启动web应用时,会通过监听器的方式,通知Serv ...
- 天道神诀--IPSAN实现多链路以及多路径安装
# linux6 环境需求 ISCSI服务端: 2张网卡,足够的磁盘空间 iscsi客户端: 2张网卡(与服务端网段相同) ISCSI服务端配置: 与1张网卡配置主要差别在于配置文件中的允许访问网段, ...
- python接口自动化(响应对象方法)
python接口自动化(响应对象方法) 一.encoding作用 获取请求的编码(在不设置响应编码时,响应的信息默认使用的是请求的编码格式):r.encoding 设置响应的编码:r.encoding ...
- mysql和postgresql查询数据库中哪些表包含某个字段
想知道数据库中哪表含有edu_status字段 mysql> select table_name,column_name from information_schema.columns wh ...