3-1.标识符。为什么Python中不需要变量名和变量类型声明?
变量的赋值即是变量声明和定义的过程。所以不需要声明变量。也很好解释了python是一门动态语言。
3-2.标识符。为什么Python中不需要声明函数类型?
和不用声明变量一样,Python不用去声明函数的返回类型,是由于其“弱类型”的语言特性决定。
弱类型:
弱类型语言vbs:
a=1
b=a+"1"+"a" //结果是11a,这里 a 成了字符串
c=a+1 //结果是2 ,这里a则是数字型
区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型3-3.标识符。为什么应当避免在变量名的开始和结尾使用下划线?
因为下划线对解释器是有特殊意义的,而且是内建标识符所使用的符号。开头使用下划线表示该变量为私有变量,而开头和结尾使用下划线__xxx__这种变量名对Python来说有特殊含义,对于普通的变量应避免这种命名风格。
私有变量:在模块或类外不可使用
3-4.语句。在Python中一行可以书写多个语句吗?
可以。使用(;)可以将多个语句写在同一行。但会降低代码的可读性,不提倡这么做。
import sys;x = 'foo'; sys.stdout.write(x + '\n')3-5.语句。在Python中可以将一个语句分成多行书写吗?
可以。使用反斜杠(\)换行分隔。
if (weather_is_hot == 1) and \ (shark_warnings == 0): send_goto_beach_mesg_to_pager()有两种例外情况不用反斜杠也可以跨行。在使用闭合操作符或三引号包括下字符串也能跨行。
3-6.(a).
>>> x,y,z = 1, 2, 3 >>> x 1 >>> y 2 >>> z 3(b).
>>> z,x,y = y,z,x >>> x 3 >>> y 1 >>> z 2
3-7.合法标识符:int32, printf, print, _print, this, self, __name__, bool, true, big-daddy, type, thisIsn'AVar, thisIsAVar, R_U_Ready, Int, True, if, do, counter-1, access
不合法标识符:40XL, $aving$, 0x40L, 2hot2touch, _.开始时没有使用下划线或字母。
关键字:print,if
3-8.
# -*- coding: utf-8 -*- #导入os模块 import os def maketextfile(): ls = os.linesep #无限循环 while True: #使用if语句判断文件是否重名 if os.path.exists(fname): print "ERROR: '%s' already exists" % fname else: break #建立一个空的列表 all = [] print "\nEnter lines ('.' by itself to quit).\n" #用户输入文件内容,一次一行,遇到.号终止 while True: entry = raw_input('Whatever you want to say: ') if entry == '.': break else: all.append(entry) #以写操作打开文件,将用户输入逐行写入文件 fobj = open(fname, 'w') fobj.writelines(['%s%s' % (x, ls) for x in all]) fobj.close() print 'DONE'3-9.Windows系统
>>> import os >>> os.linesep '\r\n'
暂无其他系统
3-10.(a).
# -*- coding: utf-8 -*- #导入os模块 import os #将os.linesep赋值给ls ls = os.linesep while 1: fname = raw_input('Enter a name') try: fobj = open(fname, 'a') except IOError, e: print "file open error" else: break #建立一个空的列表 all = [] print "\nEnter lines ('.' by itself to quit).\n" #用户输入文件内容,一次一行,遇到.号终止 while True: entry = raw_input('Whatever you want to say: ') if entry == '.': break else: all.append(entry) #以写操作打开文件,将用户输入逐行写入文件 fobj = open(fname, 'w') fobj.writelines(['%s%s' % (x, ls) for x in all]) fobj.close() print 'DONE'