2-1 变量, print 和字符串格式化运算符。启动交互式解释器。给一些变量赋值(字符串,数值等等)并通过输入变量名显示它们的值。再用 print 语句做同样的事。这二者有何区别? 也尝试着使用字符串格式运算符 %, 多做几次, 慢慢熟悉它。
print来显示变量的内容,仅用变量名时,输出的字符串使用单引号括起来的,这是为了让非字符串对象也能以字符串的方式显示在屏幕上,print语句使用str()函数显示对象,交互解释器调用repr()函数来显示对象
#!/usr/bin/env python
1+2*4
(a) 你认为这段脚本是用来做什么的?
(b) 你认为这段脚本会输出什么?
(c) 输入以上代码,并保存为脚本,然后运行它。它所做的与你的预期一样吗?为什么为什么一
样/不一样?
(d) 这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果
(e) 如何改进这个脚本, 以便它能和你想像的一样工作?为什么一样/不一样?
(a) 创建一段脚本使用 raw_input() 内建函数从用户输入得到一个字符串,然后显示这个
用户刚刚键入的字符串。
(b) 添加一段类似的代码,不过这次输入的是数值。将输入数据转换为一个数值对象,
(使
用 int()或其它数值转换函数) 并将这个值显示给用户看。(注意,如果你用的是早于 1.5 的版
本,你需要使用 string.ato*() 函数执行这种转换)
#!/usr/bin/env python
string =raw_input("please type the string:\n")
print string
#!/usr/bin/env python
string =input("please type the string:\n")
print string
print type(string)
2-5
循环和数字
分别使用 while 和 for 创建一个循环:
(a) 写一个 while 循环,输出整数从 0 到 10。
(要确保是从 0 到 10, 而不是从 0 到 9 或
从 1 到 10)
(b) 做同 (a) 一样的事, 不过这次使用 range() 内建函数。
#!/usr/bin/env python
i=0
while i<=10:
print i
i+=1
#!/usr/bin/env python
for counter in range(11):
print counter
条件判断
判断一个数是正数,还是负数, 或者等于 0. 开始先用固定的数值,然
后修改你的代码支持用户输入数值再进行判断。
#!/usr/bin/env python
value=input("please type the value:\n")
if value>0:
print "This number is positive"
elif value<0:
print "This number is negative"
else:
print "This number is zero"
循环和字串
从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用 while 循
环实现,然后再用 for 循环实现。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
string =raw_input("please type the string:\n")
print "for循环完成逐字符显示字符串"
for i in string:
print i
print "while循环完成逐字符显示字符串"
j=0
while j<len(string):
print string[j]
j+=1
#!/usr/bin/env python
#-*- coding:utf-8 -*-
aList =[1,2,3,4,5]
j=0
print "for循环实现输出列表的和"
for i in aList:
print i
j+=i
print j
print "while 循环实现输出列表的和"
j=0
i=0
while i<len(aList):
j+=aList[i]
print aList[i]
i+=1
print j
精确的结果。 float()内建函数可以帮助你实现这一功能。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
aList =(1,3,3)
j=0
print "for循环实现输出列表的和"
for i in aList:
print i
j+=i
counter =float(len(aList))
print "平均值为:",j/counter
print "while 循环实现输出列表的和"
j=0
i=0
while i<len(aList):
j+=aList[i]
print aList[i]
i+=1
print j
print "平均值为:",j/counter
#!/usr/bin/env python
#-*- coding:utf-8 -*-
while True:
i =input("please type the number:\n")
if(0<i<100):
print"success!"
break
else:
pass
#!/usr/bin/env python
#-*- coding:utf-8 -*-
myList =[]
i=0
sum=0
while i<5:
counter=input("please enter the number:\n")
myList+=[counter]
i+=1
while True:
print"""
(1)取五个数的和
(2)取五个数的平均值
(3)退出
"""
choose=input("please enter your choose:\n")
if choose==1:
for j in range(len(myList)):
sum+=myList[j]
print sum
elif choose==2:
for j in range(len(myList)):
sum+=myList[j]
print sum/(len(myList)+1)
elif choose==3:
break
dir()内建函数
(a) 启动 Python 交互式解释器, 通过直接键入 dir()回车以执行 dir()内建函数。你看到
什么? 显示你看到的每一个列表元素的值,记下实际值和你想像的值
(b) 你会问, dir()函数是干什么的?我们已经知道在 dir 后边加上一对括号可以执行 dir()
内建函数, 如果不加括号会如何? 试一试。 解释器返回给你什么信息? 你认为这个信息表
示什么意思 ?
(c) type() 内建函数接收任意的 Python 对象做为参数并返回他们的类型。 在解释器中键
入 type(dir), 看看你得到的是什么?
(d) 本练习的最后一部分, 我们来瞧一瞧 Python 的文档字符串。 通过 dir.__doc__ 可
以访问 dir()内建函数的文档字符串。print dir.__doc__可以显示这个字符串的内容。 许多内建
函数,方法,模块及模块属性都有相应的文档字符串。我们希望你在你的代码中也要书写文档
字符串, 它会对使用这些代码的人提供及时方便的帮助。
利用 dir() 找出 sys 模块中更多的东西。
(a) 启动 Python 交互解释器,执行 dir()函数,然后键入 import sys 以导入 sys 模块。
再次执行 dir()函数以确认 sys 模块被正确的导入。 然后执行 dir(sys) , 你就可以看到 sys
模块的所有属性了。
(b) 显示 sys 模块的版本号属性及平台变量。记住在属性名前一定要加 sys. ,这表示
这个属性是 sys 模块的。其中 version 变量保存着你使用的 Python 解释器版本, platform
属性则包含你运行 Python 时使用的计算机平台信息。
(c) 最后, 调用 sys.exit() 函数。 这是一种热键之外的另一种退出 Python 解释器的方
式 。
print (-2*4)+(3**2)
(a)让用户输入三个数值并将分别将它们保存到 3 个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序
#!/usr/bin/env python
#-*-coding:utf-8-*-
number1 =input("请输入第一个数值!:\n")
number2 =input("请输入第二个数值!:\n")
number3 =input("请输入第三个数值!:\n")
if number1>number2:
number2,number1=number1,number2
if number1>number3:
number3,number1=number1,number3
if number2>number3:
number3,number2=number2,number3
print number1,number2,number3
number1,number2,number3=number3,number2,number1
print number1,number2,number3