《转》python学习(3)
转自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学习(3)的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
随机推荐
- Spring事件监听Demo
Spring事件监听实现了观察者模式.本Demo在junit4测试环境中实现 主要有三个类事件类.监听器类.事件发布类(入口) 事件类必须继承 ApplicationEvent,代码如下: impor ...
- java——常用类的总结
package test; import java.util.ArrayList; import java.util.HashMap; import java.util.Set; public cla ...
- 编译器内置宏__LINE__&__FUNCTION__
编译器内置宏: 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息. ANSI C标准中有几个标准预定义宏(也是常用的): ...
- Java-jdbc工具类DBUtils
创建项目: 导入相应jar包: 看上图. JDBCUtil.java获取数据库连接文件: package com.gordon.jdbcutil; import java.io.InputStream ...
- ThinkPHP3.2 介绍
模块化 驱动化 为云平台而生ThinkPHP3.2正式版发布! ThinkPHP是国内领先的WEB应用开发框架,诞生于2006年初,在国内具有良好的口碑和广大的用户群,秉承了大道至简的开发理念,让WE ...
- TensorFlow基础笔记(14) 网络模型的保存与恢复_mnist数据实例
http://blog.csdn.net/huachao1001/article/details/78502910 http://blog.csdn.net/u014432647/article/de ...
- tornado 重定向404
方法一: 一度喜欢tornado的我, 一直在尝试寻找自定义404的方法,恰巧在看tornaod的mvc结构的时候看到了解决办法 方法之巧妙令人从心底佩服.后来我克隆一份到自己的github以作备份. ...
- ubuntu12.04开启虚拟机的unity模式
终端中输入: sudo add-apt-repository ppa:gnome3-team/gnome3 sudo apt-get update sudo apt-get install gnome ...
- Json---Windows下使用Jsoncpp
上述Json解析使用的是Jsoncpp,要使用Jsoncpp,得做如下几步的配置: 1. 首先从http://sourceforge.net/projects/jsoncpp/下载,压缩包大约105k ...
- Node.js进程通信模块child_process
前言 Node.js是一种单线程的编程模型,对Node.js的赞美和诟病的也都是因为它的单线程模型,所有的任务都在一个线程中完成(I/O等例外).单线程模型,不仅让代码非常简洁,更是直接避免了线程调度 ...