Python核心教程(第二章)

----------------输出hello world--------------

核心笔记一:

在交互式解释器中显示变量的值
通常当你想看变量内容时,你会在代码中使用print 语句输出。不过在交互式解释器中,
你可以用 print 语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值。
在下面的例子中,我们把一个字符串赋值给变量myString,先用print 来显示变量的内容,
之后用变量名称来显示。

>>> myString = 'hello world!'
>>> print myString
hello world!
>>> myString
'hell world!'

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

有单引号代表输出的是字符串,而print函数处理的本来就是字符串。这类似于str()和repr()两个函数:

>>> str('hello world!')
'hello world!'
>>> repr('hello world!')
"'hello world!'"

Python 的print 语句,与字符串格式运算符( % )结合使用,可实现字符串替换功能

>>> print '%s is number %d!' % ('python', 1)
python is number 1!
%s 表示由一个字符串来替换,而%d 表示由一个整数来替换,另外一个很常用的就是%f, 它
表示由一个浮点数来替换



---------------input和raw_input函数-------------

input和raw_input的区别:

input()函数支持用户输入数字或者表达式,不支持输入字符串.返回的是数字类型的数值.
raw_input()函数捕获的是用户的原始输入,返回为字符串.如果需要用输入的数字计算,则需要使用int()函数转换一下.如果我们直接用输入的数值与某数想加,那么解释器就会报错:

a = input("a: ")
print 'a = ', a

b = raw_input("b: ")
print 'b = ', b

输出结果是:

a: 1+1
a =  2
b: 1+1
b =  1+1
从结果中我们可以看出:
input()函数输入表达式1+1后返回数值2
raw_input()函数输入表达式1+1后返回字符串"1+1"


>>> user = raw_input('enter login name:')
enter login name:fzyz.abc
>>> print 'your login is:', user
your login is: fzyz.abc
>>> num = raw_input('now enter a number:')
now enter a number:1024
>>> print 'doubling your number: %d' % (int(num) * 2)
doubling your number: 2048

内建函数int()将数值字符串转换成整数值,这样才可以对它进行数学运算


核心笔记二:从交互式解释器中获得帮助

在学习 Python 的过程中,如果需要得到一个生疏函数的帮助,只需要对它调用内建函数
help()。通过用函数名作为 help()的参数就能得到相应的帮助信息:


---------------Python中文编码-------------

用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。
Python 文件中如果未指定编码,在执行过程会出现报错:

需要在文件开头加入 # _*_ coding: UTF-8 _*_


Python 不支持C 语言中的自增1 和自减1 运算符, 这是因为 + 和 - 也是单目运算符,
Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n.


---------------列表和元组------------

列表和元组有几处重要的区别。列表元素用中括号( [ ])包裹,元素的个数及元素的值可
以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。元组可以看成是
只读的列表。通过切片运算( [ ] 和 [ : ] )可以得到子集


循环索引和循环元素,利用enumerate()函数

foo = 'abc'
for i, ch in enumerate(foo):
	print ch, '(%d)' % i

结果输出为:

a (0)
b (1)
c (2)


---------------------------文件读取open---------------------------------------

filename = raw_input('Enter file name: ')
fobj = open(filename, 'r')
for eachLine in fobj:
    print eachLine,
fobj.close()

输出结果:

Enter file name: E:\hjh.txt
hjh
hjp
hlz
zee
在print 语句中使用逗号来抑制自动生成的换行符号。 为什么要这样做?因为文件中的每行文本已经自带了换行字符, 如果我们不抑
制print 语句产生的换行符号, 文本在显示时就会有额外的空行产生。



2-15元素排序
(a)让用户输入三个数值并将分别将它们保存到3个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序

num1 = int(raw_input("enter number1:"))
num2 = int(raw_input("enter number2:"))
num3 = int(raw_input("enter number3:"))
minNum = min([num1, num2, num3])
maxNum = max([num1, num2, num3])
mid = [x for x in [num1, num2, num3] if x != minNum and x != maxNum]
print minNum, mid[0], maxNum









没有更多推荐了,返回首页