python基础学习笔记(二)

系统 1448 0

python基础学习笔记(二)

2013-02-24 16:25  虫师 阅读( ... ) 评论( ... ) 编辑 收藏

继续第一篇的内容,讲解, 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 
                
                
                  "
                
                
                  
                
                
                  "
                
                , line 1, 
                
                  in
                
                
                  
                    
    name 
                  
                  = input(
                  
                    "
                  
                  
                    what is your name?
                  
                  
                    "
                  
                  
                    )
  File 
                  
                  
                    "
                  
                  
                    
                  
                  
                    "
                  
                  , line 1, 
                  
                    in
                  
                  
                    
                      
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 前缀,就像原始字符串使用 一样。

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

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论