python学习之旅笔记总结:第一章、快速上手基础知识

1 交互式解释器

启动python后,可看到提示符

测试python,如下

注意:如果你熟悉其他计算机语言,可能习惯了在每行末尾都加上分号。在Python中无需这样做,因为在Python中,一行就是一行。如果你愿意,也可加上分号,但不会有任何影响(除非后面还有其他代码),况且大家通常都不这样做

2、算法是什么

        真刀真枪地编写程序前,先来说说何为计算机编程。简而言之,计算机编程就是告诉计算机如何做。计算机多才多艺,但不太善于独立思考,我们必须提供详尽的细节,使用它们能够明白的语言将算法提供给它们。算法只不过是流程或菜谱的时髦说法,详尽地描述了如何完成某项任务。请看下面的菜谱:

       鸡蛋火腿肠:先取一些火腿肠。
       再加些火腿肠和鸡蛋。
       如果喜欢吃辣,加些辣味火腿肠。
       煮熟为止。记得每隔10分钟检查一次。
       这个菜谱并不神奇,但其结构很有启发性。它由一系列必须按顺序执行的操作说明组成,其中有些可直接完成(取些火腿肠),有些需要特别注意(如果喜欢吃辣),还有一些需要重复多次(每隔10分钟检查一次)。

       菜谱和算法都由原料(对象)和操作说明(语句)组成。在这个示例中,火腿肠和鸡蛋是原料,而操作说明包括添加火腿肠、烹饪指定的时间等。下面首先介绍一些非常简单的Python原料,看看可以对它们做些什么

3、数和表达式

          所有常见算术运算符的工作原理都与你预期的一致。除法运算的结果为小数,即浮点数(float或floating-point number)。

注意:整除是双斜杠。

         

        求余运算符也可用于浮点数。这种运算符甚至可用于负数,但可能不那么好理解

        

        对于整除运算,需要明白的一个重点是它向下圆整结果。因此在结果为负数的情况下,圆整后将离0更远。这意味着对于-10 // 3,
将向下圆整到-4,而不是向上圆整到-3

        这里要介绍的最后一个运算符是乘方(求幂)运算符

         

       请注意,乘方运算符的优先级比求负(单目减)高,因此-3**2等价于-(3**2)。如果你要计算的是(-3)**2,必须明确指出。

       十六进制数、八进制数和二进制数分别以下面的方式表示:(这些表示法都以0打头,8进制表示为0o,其中第二个是字母O)

        

4 变量

      变量是表示(或指向)特定值的名称

       注意:不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。

               在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。因此Plan9是合法的变量名,而9Plan不是

5 语句

        前面使用的几乎都是表达式,相当于菜谱中的原料,但语句(菜谱中的操作说明)是什么样的呢?

       表达式是一些东西,而语句做一些事情。例如,2 * 2的结果是4,而print(2 * 2)打印4。表达式和语句的行为很像,因此它们之间的界线可能并非那么明确;

        无论在什么编程语言中,赋值语句都可能是最重要的语句,虽然这一点你可能难以马上明白。变量就像是临时“存储区”(类似于菜谱中的锅碗瓢盆)②,其真正威力在于无需知道它们存储的值就能操作它们

6、获取用户输入

      >>> input("The meaning of life: ") 
       The meaning of life: 42 
       '42'
      这里在交互式解释器中执行了第一行(input(...)),它打印字符串"The meaning of life:",提示用户输入相应的信息。我输入42并按回车。这个数被input(以文本或字符串的方式)返回,并在最后一行被自动打印出来。

7、函数

            3节使用了乘方运算符(**)来执行幂运算。实际上,可不使用这个运算符,而使用函数pow

            

           函数犹如小型程序,可用来执行特定的操作。Python提供了很多函数,可用来完成很多神奇的任务。实际上,你也可以自己编写函数(这将在后面更详细地介绍),因此我们通常将pow等标准函数称为内置函数。

         有多个内置函数可用于编写数值表达式。例如,abs计算绝对值,round将浮点数圆整为与之最接近的整数

          

       请注意最后两个表达式的差别。整数总是向下圆整,而round圆整到最接近的整数,并在两个整数一样近时圆整到偶数。如果要将给定的数向下圆整,该如何做呢?例如,你知道某人的年龄为32.9,并想将这个值向下圆整为32,因为他还没有满33岁。Python提供了完成这种任务的函数floor,但你不能直接使用它,因为像众多很有用的函数一样,它也包含在模块中。

8、模块

            可将模块视为扩展,通过将其导入可以扩展Python功能。要导入模块,可使用特殊命令import。前一节提及的函数floor包含在模块math中。

         

         模块math还包含其他几个很有用的函数。例如,ceil与floor相反,返回大于或等于给定数的最小整数。

        如果确定不会从不同模块导入多个同名函数,你可能不想每次调用函数时都指定模块名。在这种情况下,可使用命令import的如下变种:

        

       通过使用命令import的变种from module import function,可在调用函数时不指定模块前缀

       事实上,可使用变量来引用函数(以及其他大部分Python元素)。执行赋值语句foo =math.sqrt后,就可使用foo来计算平方根。例如,foo(4)的结果为

        

8.1 cmath模块

        函数sqrt用于计算平方根。下面来看看向它提供一个负数的情况

       在有些平台上,结果如下:nan具有特殊含义,指的是“非数值”(not a number)
          >>> sqrt(-1) 
          nan

        如果我们坚持将值域限定为实数,并使用其近似的浮点数实现,就无法计算负数的平方根。负数的平方根为虚数,而由实部和虚部组成的数为复数。Python标准库提供了一个专门用于处理复数的模块。

          

         注意到这里没有使用from ... import ...。如果使用了这种import命令,将无法使用常规函数sqrt。类似这样的名称冲突很隐蔽,因此除非必须使用from版的import命令,否则应坚持使用常规版import命令。

       1j是个虚数,虚数都以j(或J)结尾。复数算术运算都基于如下定义:-1的平方根为1j。这里不深入探讨这个主题,

         Python没有专门表示虚数的类型,而将虚数视为实部为零的复数

9、保存并执行程序

         交互式解释器是Python的亮点之一,它让你能够实时地测试解决方案以及尝试使用Python。要了解隐藏在背后的工作原理,只需尝试使用即可!然而,等你退出交互式解释器时,你在其中编写的所有代码都将丢失。你的终极目标是编写自己和他人都能运行的程序。本节将介绍如何达成这种目标。

首先,你需要一个文本编辑器——最好是专门用于编程的(不推荐使用Microsoft Word之类
的软件,但如果你使用的是这样的软件,务必以纯文本的方式保存代码)。如果你使用的是IDLE,
那就太幸运了。在这种情况下,只需选择菜单File→New File。这将新建一个编辑器窗口,其中
 
1.9 保存并执行程序 11 
        首先,你需要一个文本编辑器——最好是专门用于编程的(不推荐使用Microsoft Word之类的软件,但如果你使用的是这样的软件,务必以纯文本的方式保存代码)。如果你使用的是IDLE,那就太幸运了。在这种情况下,只需选择菜单File→New File。这将新建一个编辑器窗口,其中没有交互式提示符。首先,输入如下代码:
            print("Hello, world!")
接下来,选择菜单File→Save保存程序(其实就是一个纯文本文件)。务必将文件存储在以后能够找到的地方,并指定合理的文件名,如hello.py(扩展名.py很重要)

         保存好了吗?请不要关闭包含程序的窗口。如果关闭了,选择菜单File→Open重新打开。现在可以运行这个程序了,方法是选择菜单Run→Run Module。(如果你使用的不是IDLE,请参阅下一节,了解如何从命令提示符运行程序。)

         在Python中,井号(#)比较特殊:在代码中,井号后面到行尾的所有内容都将被忽略。注释务必言而有物,不要重复去讲通过代码很容易获得的信息。无用而重复的注释还不如没有。

10、字符串

10.1 单引号字符串以及对引号转义

          Python在打印字符串时,用单引号将其括起,而我们使用的是双引号。这有什么差别吗?其实没有任何差别。这里使用的是单引号,结果却完全相同。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用

         

        在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单引号将整个字符串括起,否则解释器将报错(做出这样的反应是正确的);在这里,字符串为'Let',因此Python不知道如何处理后面的s(更准确地说是当前行余下的
内容)。解决方法有两种,其一如上,其二就是使用\对引号转义,如下

         

10.2 拼接字符串

           应该如何拼接字符串呢?就像将数相加一样,将它们相加

         

10.3 字符串表示 str 和 repr

         Python打印所有的字符串时,都用引号将其括起。你可能通过前面的示例发现了这一点。这是因为Python打印值时,保留其在代码中的样子,而不是你希望用户看到的样子。但如果你使用print,结果将不同。

          

如果再加上表示换行符的编码\n,差别将更明显

           

        通过两种不同的机制将值转换成了字符串。你可通过使用函数str和repr①直接使用这两种机制。使用str能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示

          

10.4 长字符串、原始字符串和字节
         有一些独特而有用的字符串表示方式。例如,有一种独特的语法可用于表示包含换行符或反斜杠的字符串(长字符串和原始字符串)。

      1. 长字符串

        要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)

         print('''This is a very long string. It continues here. 
        And it's not over yet. "Hello, world!" 
         Still here.''')

      注意:此处是三引号,由三个单引号组成,不是一个双引号加一个单引号

      

请注意,三引号让解释器能够识别表示字符串开始和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义

2. 原始字符串
        原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用②。在常规字符串中,反斜杠扮演着特殊角色:它对字符进行转义,让你能够在字符串中包含原本无法包含的字符。例如

      

但对于很长的路径,将需要使用大量的反斜杠     path = 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz\\bozz‘

在这样的情况下,原始字符串可派上用场,因为它们根本不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样。

原始字符串用前缀r表示。看起来可在原始字符串中包含任何字符,这大致是正确的。

      

      一个例外是,引号需要像通常那样进行转义,但这意味着用于执行转义的反斜杠也将包含在最终的字符串中

         

        

           另外,原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的最后一个字符不能是反斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。

          请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。

3. Unicode、bytes和bytearray

              Python字符串使用Unicode编码来表示文本。

11、总结

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考:图灵程序设计丛书:python基础教程第三版

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值