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'