python基础教程(二)

继续第一篇的内容,讲解,python的一些基本的东西。

注释

为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样。

>>> #获得用户名:
>>> user_name = raw_input("what is your name?")

在python 中用井号(#)表示注释。井号(#)右边的内存将不被程序执行。即使没有注释,也应该让代码本身易于理解。幸好!Python是一门出色的语言,它能帮助程序员编写易于理解的程序。^_^

字符串



单引号字符串和转义引号

>>> "hello,world"
‘hello,world‘

>>> ‘"hello ,world" she said‘
‘"hello ,world" she said‘

>>> "‘hello,world‘ she said"
"‘hello,world‘ she said"

第一个输出,明明是双引号( “” ) ,怎么输入变成了单引号( ‘’ )。这有什么区别呢?事实上,没有区别。

再看第二个,单引导(‘’)里面包含了一对双引号(“”),这次完整输出了。难道只有双引号输出会变成单引号么?

再看第三个,双引号(“”)号里面包含了一对单引号(‘’),这次为什么没把最外面的双引号变成单引号输出? 这编译器比较情绪化,呵呵!

>>> "Let‘s go"
"Let‘s go"

>>>‘Let‘s go‘
SyntaxError: invalid syntax

>>> ‘Let\‘s go‘
"Let‘s go"

第一个输出,双引号包含一个单引号(实际上应该叫撇(‘) ,因为它不是成对出现的。)可以正常输出。

第二个输出,一对单引号里面包含了一个单引号(这应该是输入者的本意)。编译器不知道怎么识别了。

第三个输出,为了达到这个目的,我们需要把中间的单引号用斜杠(\)进行转义。这次又不一样了,单引号输出之后变成了双引号。编译器,你真调皮。

拼接字符串

下面试试加号(+)来拼接一个字符

>>> "helle,"+"world!"
‘helle,world!‘

>>> x="hello,"
>>> y="world!"
>>> x+y
‘hello,world!‘

字符串表示,str 和 repr

前面的例子读者可能注意到,所有通过python打印的字符串还是被引号括起来的。这是因为python打印值的时候会保持该值在python代码中的状态,而不是你希望 用户所看到的状态。如果用print语句,结果就不一样了:

>>> "hello,world!"
‘hello,world!‘
>>> 10000L
10000L

>>> print "hello,world!"
hello,world!
>>> print 10000L
10000

可以看到,长整型数10000L被转换成了数字10000 ,而且在显示给用户的时候也如此。

我们在这里讨论的实际上是值被转为字符的两种机制。可以通过以下两个函数来使用这两种机制:

>>> print str("hello,world!")
hello,world!
>>> print str(10000L)
10000

>>> print repr("hello,world!")
‘hello,world!‘
>>> print repr(10000L)
10000L

str()函数 ,它会把值转换为合理形式的字符串,以例用户可以理解;

repr()函数,它会创建一个字符串,它以合法的python表达式的形式来表示值。

input 和 raw_input 的比较

上一章的最后一个例子用到了raw_input 函数,那它与 input 有什么不用? 下面我们用input函数,再试试那个例子。

>>> name = input("what is your name?")
what is your name?huhu

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    name = input("what is your name?")
  File "<string>", line 1, in <module>
NameError: name ‘huhu‘ is not defined

>>> name = input("what is name?")
what is name?"huhu"
>>> print "hello, " + name + " !"
hello, huhu !

input()函数会假设用户输入的是合法的python表达式。所以直接输入huhu 系统会提示错误,但是如果加上引号(“huhu”)就会是一个合法的字符,程序运行是没有问题的。

然而,要求用户带着引号输入他们的名字有点过份,因此,就这需要使用raw_input函数。

>>> input("enter a namber:")
enter a namber:3
3
>>> raw_input("enter a namber:")
enter a namber:3
‘3‘

当然input有特别的需要,比如要求用户输入数字时。

长字符串

如果需要写一个非常非常长的字符串,它需要跨多行,那么,可以使用三个引号带点普通引号。

>>> print ‘‘‘ this is a very long string.
It continues here.
and it‘s not over yet.
‘‘‘
 this is a very long string.
It continues here.
and it‘s not over yet.

普通字符串也可以跨行。如果一行之中最后一个字符是反斜线,那么,换行符本身就“转义”了,也就是被忽略了。

>>> print " Hello.world!"
 Hello.world!
>>> 1+2+      4+5
12

原始字符串

>>> path =‘C:\abc‘
>>> print path
C:bc

怎么会这样呢,我想输入的是一个路径,却被换行了。

>>> print ‘C:\\abc‘
C:\abc
>>> print ‘C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz‘
C:\Program Files\fnord\foo\bar\baz\frozz

通过上面的双斜线(\\)解决了路径问题,但如果路径很长的话会不会太麻烦了。

>>> print r‘C:\Program Files\fnord\foo\bar\baz\frozz‘
C:\Program Files\fnord\foo\bar\baz\frozz

>>> print r‘Let\‘s go !‘
Let\‘s go !

原始字符串不会把反斜线当作特殊字符。可以看到,原始字符串以r开头。

Unicode字符串

字符串常量的最后一种类型就是Unicode 字符串(或者称为Unicode 对象---与字符串并不是同一个类型)。Python中的普通字符串在内部是以8位ASCII码形成存储的,而Unicode字符串则存储为16位Unicode字符,这样就能够表示更多的字符集了,包括世界上大多数语言的特殊字符。

如果你不短简什么是Unicode ,可以访问Unicode网站:http://www.unicode.org

>>> u‘hello, world!‘
u‘hello, world!‘ 

可以看到,Unicode字符串使用u前缀,就像原始字符串使用r 一样。

注意:在python 3.0中,所有字符串都是Unicode字符串。

时间: 2024-10-28 21:21:26

python基础教程(二)的相关文章

.Net程序员之Python基础教程学习----列表和元组 [First Day]

一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所以的范围是-N~N-1之间,超过这个范围就会提示 IndexError:  index out of range >>> greeting ='Hello world' >>> print greeting Hello world >>> print gr

python基础教程1:入门基础知识

写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要的学习方法无非总结梳理,温故知新,多动手实践.作为一个编程的门外汉,要快速转型上手Python一定要践行此"术". 我完整看完的技术书籍几乎没有,从今天起就要通读下<Python基础教程>第二版,并每一章节都写一篇博客记录.总结所学. 本书共29章,计划在14天内看完.任务艰巨

Python基础教程__项目(公告板)

由于最近学习Python,从最基础的Python基础教程学起,其中最后的十个项目还是很不错的.个人认为.本人新手,如有错误,还请指教. 书上用的是PostgreSQL,这里用的是MySQL.由于这是一个CGI项目.所以事先需要准备一个可以运行CGI脚本的试验环境. 本次用的是Apache运行cgi.配置网上很多. 其次需要创建一个数据表: CREATE TABLE `messages` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `subject` v

《Python基础教程 第2版&#183;修订版》 第2章 列表和元组(学习笔记&#183;总)

这章东西有点多,因此,分成了三份来写,总体来说,这章内容较基础,以下是一二三的链接 <Python基础教程 第2版·修订版>第2章 列表和元组(学习笔记·一) <Python基础教程 第2版·修订版>第2章 列表和元组(学习笔记·二) <Python基础教程 第2版·修订版>第2章 列表和原组 (学习笔记·三) 版权声明:本文为博主原创文章,未经博主允许不得转载.

Python基础教程(第十四章 网络编程)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5538341.html______ Created on Marlowes 本章将会给读者展示一些例子,这些例子会使用多种Python的方法编写一个将网络(比如因特网)作为重要组成部分的程序.Python是一个很强大的网络编程工具,这么说有很多原因,首先,Python内有很多针对常见网络协议的库,在库顶部可以获得抽象层,这样就可以

Python基础教程学习:深入 Python iter() 方法

今天我们来介绍下Python基础教程学习之iter() 方法另外的用法.据说很少有人知道这个用法! 一.上代码.学用法 我们都比较熟悉 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错.但其实如果仔细看官方文档,会发现 iter() 方法其实是接受两个参数的,文档说明如下 iter(object[, sentinel]) sentinel 英文翻译为 哨兵. sentinel 参数是可选的,当它存在时,object 不再传入一个可迭代对象,而是一个可调用对象,通俗点说

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

python基础教程(第二版)

开始学习python,根据Python基础教程,把里面相关的基础章节写成对应的.py文件 下面是github上的链接 python基础第1章基础 python基础第2章序列和元组 python基础第3章使用字符串 python基础第4章字典 python基础第5章循环 python基础第6章函数和魔法参数 python基础第7章类 python基础第8章异常 python基础第9章魔法方法.属性和迭代器 python基础第11章文件 python基础第12章GUI(wxPython) pytho

Python基础(二)

Python基础(二) Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.