《简明 Python 教程》学习笔记- 基本概念

学习起因

最近除了忙着论坛那边,就是忙着攻克Python,都好久没来更新了。今天暂且发出一小部分之前自学时做的笔记吧。假期忽然对脚本语言产生了兴趣,最终选择了这个先学着(其实看了《黑客与画家》后也挺想学学Lisp的,后来看到有那么多分类什么的就暂时放弃了o(>﹏<)o)。之后去了贴吧、知乎等地寻找资源与方法,再大致看了基本教程书籍后最终选择了《简明 Python 教程》作为入门书。 之所以选它是由于之前已经有了一部分编程知识,在学了c、C++、Java的基础后,虽然在编程路上依旧是新人,但毕竟算不上一点也不懂的小白了,而《简明 Python 教程》真正做到了简明扼要,让初入门的我一看便能理解的差不多,感觉这才是我现在需要的那种学习资料,如实它成了我学习Python的第一本书。

学习笔记

一.程序输出print 语句

1通常当你想看变量内容时,你会在代码中使用 print 语句输出。不过在交互式解释器中,你可以用 print 语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值。

例1-1-1:
>>> myString = 'Hello world!'
>>> print myString

输出效果: Hello world!

>>> myString

输出效果: 'Hello world!'

例1-1-2:
>>> myString1 = "Hello Python"
>>> print myString1

输出效果: Hello Python

>>> myString1

输出效果: 'Hello Python'

注意:在仅用变量名时,输出的字符串是被用单引号括起来了的。这是为了让非字符串对象也能以字符串的方式显示在屏幕上--即它显示的是该对象的字符串表示,而不仅仅是字符 串本身。引号表示你刚刚输入的变量的值是一个字符串。

print 语句调用str()函数显示对象,而交互式解释器则调用repr()函数来显示对象。

2.下划线(_)在解释器中表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串:

例1-2-1:
>>> _

输出效果: 'Hello Python'

3. print 语句,与字符串格式运算符( % )结合使用,可实现字符串替换功能。其中:

%s 表示由一个字符串来替换,%d 表示由一个整数来替换,%f 表示由一个浮点数来替换。符号 >> 用来重定向输出

例1-3-1:
>>> print "%s is number %d"%("Python",1)

输出效果: Python is number 1

例1-3-2:

将输出重定向到标准错误输出

>>> import sys
>>> print >>sys.stderr,'Fatal error:invalid input!'

输出效果:

Fatal error:invalid input!

例 1-3-3:将输出重定向到日志文件

logfile = open('/tmp/mylog.txt', 'a')
print >> logfile, 'Fatal error: invalid input!'
logfile.close()

二.程序输入和 内建函数raw_input()

user = raw_input("enter login name")
enter login name root
>>> print "Your Login is:",user
Your Login is:  root

三、字符串

1。引号

使用单引号(')

你可以用单引号指示字符串,就如同'Quote me on this'这样。所有的空白,即空格和制表符都照原样保留。

 使用双引号(")

在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What's your name?"。

使用三引号('''或""")

利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:

'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

2。转义字符()

在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行,如

"This is the first sentence.
This is the second sentence."

等价于

"This is the first sentence. This is the second sentence."
自然字符串

如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自

然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated by n"。

即:

>>> r"Newline are indicated by sn"等价'Newline are indicated by s\n'

打印出来:

Newlines are indicated by n

例:

>>> s = r"Newlines are indicated by n"
>>> s

'Newlines are indicated by \n'

>>> print s

Newlines are indicated by n

Unicode字符串

例:

>>> s =u"This's a Unicode string."
>>> s

u"This's a Unicode string."

>>> print s

This's a Unicode string.

3.注意事项

字符串是不可变的;

按字面意义级连字符串;

例:

>>> 'What's' 'your name?' "What'syour name?"

在Python中没有专门的char数据类型

单引号和双引号字符串是完全相同的

一定要用自然字符串处理正则表达式

四、逻辑行与物理行

物理行是你在编写程序时所看见的。

逻辑行是Python 看见 的单个语句。

Python假定每个 物理行 对应一个 逻辑行 。

多个物理行中写一个逻辑行的例子。它被称为明确的行连接。

有时候,有一种暗示的假设,可以使你不需要使用反斜杠。这种情况出现在逻辑行中使用了圆括号、方括号或波形括号的时候。这被称为暗示的行连接。

建议坚持在每个物理行只写一句逻辑行。仅仅当逻辑行太长的时候,在多于一 个物理行写一个逻辑行。这些都是为了尽可能避免使用分号,从而让代码更加易读。

五、缩进:空格和制表符

在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。

如何缩进

不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我 强 烈建议 你在每个缩进层次使用 单个制表符 或 两个或四个空格 。 选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这 一种风格。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

结构体字节对齐

结构体字节对齐       在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上...

23460
来自专栏BestSDK

一样的代码、不一样的写法,JavaScript必知的简写技巧|附源代码

初级篇 1、三目运算符 下面是一个很好的例子,将一个完整的 if 语句,简写为一行代码。 const x = 20; let answer; if (x > 1...

630110
来自专栏柠檬先生

VUE 入门基础(6)

六,条件渲染   v-if 添加一个条件块     <h1 v-if=“ok”>Yes</h1>   也可以用v-else 添加else 块   <templa...

20790
来自专栏繁花云

liunx下sed命令的用法

单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的,这时候只要把命令中的单...

8300
来自专栏天天

Airbnb JavaScript Style Guide

const foo = 1; let bar = foo; bar = 9; console.log(foo, bar); // => 1, 9

20120
来自专栏racaljk

Leetcode 91. Decode Ways 解码方法(动态规划,字符串处理)

给一串包含数字的加密报文,求有多少种解码方式 举个例子,已知报文"12",它可以解码为AB(1 2),也可以是L (12) 所以解码方式有2种。

13110
来自专栏十月梦想

JavaScript中类的创建以及类的传参

在之前(ES2015)以前我们常用构造函数来搞定一个事物类,通过new 这个构造函数实现类的功能!在ES6(ES2015)中已经可以使用类,下面我们看一下类如何...

12120
来自专栏Golang语言社区

Golang 语言--map 用range遍历不能保证顺序输出

按照之前我对map的理解,map中的数据应该是有序二叉树的存储顺序,正常的遍历也应该是有序的遍历和输出,但实际试了一下,却发现并非如此,网上查了下,发现从Go1...

43680
来自专栏漫漫前端路

从 Vue typings 看 “this”

在 2.5.0 版本中,Vue 大大改进了类型声明系统以更好地使用默认的基于对象的 API。

10820
来自专栏大前端开发

由一道关于变量作用域的面试题,来加深对var和let的理解

最近,有一道JavaScript面试题挺流行的,很多朋友去面试的时候都遇到了。这道题目大致是这个样子的:

7330

扫码关注云+社区

领取腾讯云代金券