《Python基础教程第二版》学习笔记(一)第一章 基础知识

《Python基础教程第二版》学习笔记(一)第一章 基础知识


    在学习过C/C++以及JAVA后,准备学习一门脚本语言,当然python不止是脚本语言这么简单,它应该被称为高级动态编程语言。由于有一定其他语言的编程基础和项目经验,所以经过几番斟酌之后,选择了《Python基础教程第二版》这本书来进行入门学习,以前学习的时候习惯用笔记本做笔记,这次采用一种全新的形式,我直接采用python的IDLE新建.py文件,每一章边学习边总结,也供大家参考心得体会,这些程序可以直接在IDLE下用F5运行,有些注释掉的可以自行再验证,程序直接写在里面,注释十分详细,供大家参考,由于只是初步学习,所以可能会有一些纰漏,希望大家给予指正和建议,谢谢。以后每一章都会有总结,现给出第一章总结的.py文件的所有内容。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

#==================== python学习程序记录 ====================#
#==================== python基础教程第二版 ==================#
#======================= 2015.11.18 =======================#

#====================== 第一章 基础知识 =====================#
# 1.1
# 只执行基本的除法运算,不进行小数舍去
# from __future__ import division

# 1.0
print "=====================1.0 start====================="
# 以下三种形式都可以,但是在2x版本中只使用第一种形式
# python的命令行执行方式是:python *.py command parameter
# #用来注释一行,'''用来注释一段代码,分别对应于C/C++中的//和/**/
print  "Hello World"
print  "Hello World";
print ("Hello World");
print "=====================1.0 end=======================\n"

# 1.1
print "=====================1.1 start====================="
# 普通除法与整除
print 1   /  2
print 1.0 /  2

print 1   // 2
print 1.0 // 2.0
print "=====================1.1 end=======================\n"

# 1.2
print "=====================1.2 start====================="
# 幂运算
print  3 ** 2
print -3 ** 2    # 等同于-(3 ** 2)
print (-3) ** 2
print "=====================1.2 end=======================\n"

# 1.3
# python可以处理很大的数据,俗称长整数,注意后缀L
print "=====================1.3 start====================="
print 123456789123456789L * 1234567899874563210L + 23
print "=====================1.3 end=======================\n"

# 1.4
print "=====================1.4 start====================="
# python中一切皆为对象,所以经常用“将变量x绑定到某个对象上”这种术语。
# 表达式理解为某事,语句则理解为做某事,它改变了事物。
# 语句:2 * 2,表达式: x = 2和print 2 * 2
print "=====================1.4 end=======================\n"

# 1.5
print "=====================1.5 start====================="
# 获取输入:input和raw_input(如果没有特殊要求尽量使用raw_input)
# x = input("x = ")
# y = input("y = ")
# print x * y

# input的使用,必须输入标准的合法的python表达式
# 下面这个例子必须输入类似于"John"这样的形式,不能直接输入John,否则出错
# name = input("What is your name? ")
# print "Hello " + name + "!"

# raw_input的使用,将所有的输入当作原始数据放到字符串中
# 下面这个例子则可以直接输入John,如果输入"John",则连双引号也会打印出来
# name = raw_input("What is your name? ")
# print "Hello " + name + "!"
print "=====================1.5 end=======================\n"

# 1.6
print "=====================1.6 start====================="
# python中的变量类型是动态绑定,即不必事先定义变量,直接赋值
# 编译器就可以确定变量的类型,但是变量的类型一旦确定后就不能
# 随意地用不同类型的值去和该变量进行运算了
# 比如:
# x = "string"
# print x + 3
# x = 5
print "=====================1.6 end=======================\n"

# 31页

# 1.7
print "=====================1.7 start====================="
# python的特点:
# 第一,完全面向对象
# 第二,语法简洁清晰,强制用空白符作为语句缩进,而不采用{}的形式
# 第三,具有丰富和强大的库,可以调用各种模块,包括其他语言写的模块
# 第四,脚本语言,但是更贴切地可以认为是高级动态编程语言
# 第五,简单,易学,速度快(比c/c++慢),免费开源,高层语言,移植性好,
#      解释性强,完全面向对象,可扩展性好,具有可嵌入型,丰富的库,规范的
#      代码,独特的语法(也有可能使得tab和空格的混用带来一系列问题),跨平台
# 第六,可用于图形处理、数学计算、文本处理、数据库编程、网络编程、WEB
#      编程、多谋体应用、pymo引擎、黑客编程、爬虫程序
# 一个用python写的简单的CGI程序
print("Content-type:text/html\r\n\r\n")
print("")
print("")
print("")
print("")
print("")
print("

Hello World! This is my first CGI program

") print("") print("") print "=====================1.7 end=======================\n" # 1.8 print "=====================1.8 start=====================" # 导入模块或者直接导入模块内部的函数 import math print math.sqrt(4) foo = math.sqrt # 注意这种用法 print foo(4) from math import sqrt print sqrt(4) # 复数的计算,以j结尾 import cmath print cmath.sqrt(-1) print "=====================1.8 end=======================\n" # 1.9 print "=====================1.9 start=====================" # (1) # linux和unix下加上本文件的第一行即#! /usr/bin/env python,就可以 # 直接使用learn_python_1.py或者./learn_python_1.py在shell命令行 # 中直接运行该python脚本文件 # (2) # windows下直接双击.py文件就可以运行该脚本文件,但是运行结果会一闪而 # 过,DOS窗口直接自动关闭,使得看不到运行结果,可以在文件的最后加上下 # 面这句话,使得运行结果的DOS窗口一直存在,直到用户按下回车键 # (3) # 注意,这句话一定要加在文件的最后面,否则这句话后面的结果就看不到 # raw_input("Press ") print "=====================1.9 end=======================\n" # 1.10 print "=====================1.10 start=====================" # 关于单引号、双引号以及转义字符对于字符串的影响 # (1) # python默认使用单引号打印出字符串,而不管程序里面用的是单引号还是双 # 引号,注意这里的打印是直接输入后通过shell输出而不是通过print打印; # (2) # 当字符串中含有单引号时,程序必须用双引号括起来字符串 # 当字符串中含有双引号时,程序必须用单引号括起来字符串 # (3) # 当字符串中含有单引号时,在直接输入而不用print时使用双引号打印出字符串 # 当字符串中含有双引号时,在直接输入而不用print时使用单引号打印出字符串 # 注意,如果使用print的话,显示的只是字符串的内容 # (4) # 可以使用转义字符左斜杠'\'对解释器有歧义的字符进行转义, # 这样使用单引号或者双引号都可以 # (1)举例 "hello world" # 在shell下直接输入显示'hello world' 'hello world' # 在shell下直接输入显示'hello world' print "hello world" # 显示hello world print 'hello world' # 显示hello world # (2)(3)正确举例 "hello'world" # 在shell下直接输入显示"hello'world" 'hello"world' # 在shell下直接输入显示'hello"world' print "hello'world" # 显示hello'world print 'hello"world' # 显示hello"world # (2)错误举例 # print 'hello'world' # 显示SyntaxError: invalid syntax # print "hello"world" # 显示SyntaxError: invalid syntax # (4)举例 'Let\'s go' # 在shell下直接输入显示"Let's go" print 'Let\'s go' # 显示Let's go # 在shell下直接输入下面的内容显示'"Hello world!" she said to me.' "\"Hello world!\" she said to me." # 下面一行显示 "Hello world!" she said to me. print "\"Hello world!\" she said to me." print "=====================1.10 end=======================\n" # 1.11 print "=====================1.11 start=====================" # str repr ``(反引号而不是单引号,3x版本不再使用,它和repr功能一样) # str相当于类型,repr相当于函数,str将其他类型转化为字符串,让字符串 # 更易于阅读,不包含两端打印的单双引号和后缀(如L),而repr和反引号则把 # 其他类型转化为字符串后转换为合法的python表达式,保留基本的打印形式, # 结果与直接在shell下输入后显示的结果一致 print str("Hello World") print str(100000000000L) print repr("Hello World") # 等价于print `"Hello World"` print repr(100000000000L) # 等价于print `100000000000L` temp = 10L print "The temperature is " + str(temp) # The temperature is 10 print "The temperature is " + repr(temp) # The temperature is 10L print "=====================1.11 end=======================\n" # 1.12 print "=====================1.12 start=====================" # 长字符串、原始字符串和Unicode # 长字符串分行使用''' print '''If you want to know how to do this, you must learn it first.''' # 长字符串分行使用""" print """If you want to know how to do this, you must learn it first.""" # 如果一行之中的最后一个字符是反斜线,那么换行符本身被转义即被忽略 # 注意,反斜线后面必须立马接回车键,不能有空格,否则空格被转义 print "Hello \ world!" print 1 + 2 + \ 4 + 5 print \ "Hello \ world!" # 原始字符串 # 路径名中为了避免和转义字符出现冲突,可以使用双斜杠 # 打印D:\nopath\path\noway print "D:\\nopath\\path\\noway" # 为了避免写过多的\\,可以使用原始字符串 # 打印D:\\nopath\\path\\noway print r"D:\\nopath\\path\\noway" # 打印D:\nopath\path\noway print r"D:\nopath\path\noway" # 原始字符串中也需要用反斜线'\'对引号进行转义,不过会打印出转义用的反斜线 # 打印Let\'s go print r'Let\'s go!' # 原始字符串的最后一个字符不能是反斜线 # 如执行下面的语句会显示错误 # SyntaxError: EOL while scanning string literal # print r"This is illegal\" # 如果想使字符串的最后一个字符是反斜线则可以采用如下方法 print r"This is illegal" "\\" # Unicode字符串也称为Unicode对象,它与字符串并不是同一种类型 # python中的普通字符串在内部都是以8位的ASCII码形式存储的,而 # Unicode字符串则存储为16位的Unicode字符,这样就可以表示世界上 # 绝大多数语言的特殊字符,python3中所有字符串都是Unicode字符串 print u"Hello world." # 最后来观察几个中文和英文字符串的长度问题 # 打印(一个字母,正好一个字节): # 1 x = "H" print len(x) # 打印(一个汉字,三个字节,说明此处存储汉字用了3个字节): # 3 y = "基" print len(y) # 后面会讲到如何使得一个汉字就取得其长度唯一的方法 print "=====================1.12 end=======================\n" # 43页 # 解释见1.9 raw_input("Press ")

你可能感兴趣的:(Python)