Python起步

# -*- coding: UTF-8 -*-
'''
Created on 2013-5-26

@author: Administrator
'''
print "hello world"

#获取函数的帮助文档
file = open("c:\\help.txt", "w");
raw_inputHelp = help(raw_input) #raw_inputHelp内容为空
#print >> file, raw_inputHelp
help(open)


myStr = "测试1"
print myStr

# %s 由字符串代替     %d 用整数代替       %f 用浮点数替换
print "%s is number %d !" % ("python", 1)

#print支持将输出重定向到文件,符号用来重定向输出
import sys
print >> sys.stderr, "测试2"
print sys.stderr  #输出测试

#重定向到文件
logfile = open('c:\\log.txt', 'a')  # a 以追加方式打开  w 先清空已经存在内容
print >> logfile , "输入异常"
logfile.close() #在文件末尾追加该字符串

#用户输入 输入中文会出现异常
user = raw_input("输入登入名: ")
print "你的登录名为 " , user  #输入中文名存在异常

user = raw_input(unicode('请输入文字:', 'utf-8'))
print "输入中文为:" , unicode(user, 'utf-8') #输入中文名存在异常

#用int()内建函数将用户输入的字符串转换为整数
num = raw_input("enter a number: ")
print "Doubling your number : %d" % (int(num) * 3)


def foo():
    "This is a doc string."
    return True

flag = foo()
print flag

# / 两个数都是整数,取整数部分,一个为非整数,则执行真正的除法  // 浮点除法,执行真正的除法
print 5/2   #输出 2
print 5.0 / 2 #输出 2.5
print 5 // 2   #输出2
print 5.0 // 2   #输出2.0

# ** 乘方运算符
print 3 ** 3 #输出 27 3 * 3 * 3
n = 2
n = n * 10
#Python不支持 ++ --

# True与数字相加,True默认为1, False默认为0

1.1 #在Shell中输出 1.1000000000000001
print 1.1 #在Shell中输出 1.1
import decimal
print decimal.Decimal('1.1') #输出1.1

# 字符串 三个引号包含特殊字符
# 索引运算符[] 切片运算法 : 
# 第一个字符索引为0,最后一个为-1
# + 连接字符串     * 字符串重复
pystr = "Python"
iscool = 'is cool!'
print pystr[0] # 输出 P
print pystr[2:5] #输出 tho
print iscool[:2] #输出 is
print iscool[-1] #输出 !
print iscool[3:] #输出 cool!
print pystr + iscool # Pythonis cool!
print pystr * 2 #输出 PythonPython
print '-' * 20 #输出 -------------------

pystr = '''python
is cool'''
print pystr

#列表 用[]包裹 元素个数和值可以修改 元组用()包裹
aList = [1, 'aa', 3, 4]
print aList     #[1, 'aa', 3, 4]
print aList[0]  #1
print aList[2:] #[3, 4]
print aList[:2] #[1, 'aa']
aList[2] = 'sdgw'
print aList #[1, 'aa', 'sdgw', 4]

aTuple = ('robots', 77, 89, 'try')
print aTuple #('robots', 77, 89, 'try')
print aTuple[:3] #('robots', 77, 93)
#aTuple[1] = 5 #错误 'tuple' object does not support item assignment

#字典 类似哈希表 {} 与JavaScript对比
aDict = {'host': 'earth'} # create dict
aDict['port'] = 80 # add to dict
print aDict #{'host': 'earth', 'port': 80}
print aDict.keys() #['host', 'port'] 
print aDict['host'] #'earth'
for key in aDict:
    print key, aDict[key]
#if elif else    
i = -1 
if i<.0:
    print '"x" nust be at list 0!'
elif i == 1:
    print '"x" ==1!'
else:
    print "xxxxxxxxxxxxx"

#while
counter = 0
while counter<3:
    print 'loop #%d' % (counter)
    counter += 1

for item in ['e-mail', 'net-surfing', 'homework', 'chat']:
    print item,
print
#格式化print输出
who = 'knights'
what = 'Ni!'
print 'We are the', who, 'who say', what, what, what, what
print 'We are the %s who say %s' % (who, ((what + ' ') * 4))

for eachNum in range(3):
    print eachNum

foo = 'abc'
for c in foo:
    print c
    
for i, ch in enumerate(foo):
    print ch, "%d" % i
# a 0
# b 1
# c 2

#列表解析 
squared = [x ** 2 for x in range(4)]
for i in squared:
    print i, #输出0 1 4 9
print 
#挑出符合要求的值
sqdEvens = [x ** 2 for x in range(8) if not x % 2]
for i in sqdEvens:
    print i,
print

#一次读入文件的所有行
fileObj = open("c:\\log.txt", 'r')#以只读的方式打开,文件不存在,不会创建文件
for eachLine in fileObj:
    print eachLine,
fileObj.close()

#异常 多行注释ctrl + / 或者是一对三个双(单)引号

# try:
#     fileObj = open("c:\\log.txt", 'r')
#     for eachLine in fileObj:
#         print eachLine, fileObj.close()
# except IOError, e:
#     print 'file open error: ', e

#定义函数并调用(包含默认参数用法)
def addMe2Me(x = 4):
    if x == 4:
        return '默认值'
    else:
        return (x + x)

print addMe2Me(3)
print addMe2Me("xagawe")
print addMe2Me([-1, 'abc'])#[-1, 'abc', -1, 'abc']
print addMe2Me() # 默认值

#类 括号内的为基类
class FooClass(object):
    """my very first class: FooClass"""
    version = 0.1 # class (data) attribute 
    '''所有名字开始和结束都有两个下划线的方法都是特殊方法'''
    '''当一个类实例被创建时, __init__() 方法会自动执行,在类实例创建完毕后执行'''
    '''它仅仅是你的对象创建后执行的第一个方法,它的目的是执行一些该对象的必要的初始化工作'''
    ''' self是类实例自身的引用。其他语言通常使用一个名为 this的标识符'''
    def __init__(self, nm='John Doe'):
        """constructor""" 
        self.name = nm # class instance (data) attribute
        print 'Created a class instance for', nm
    def showname(self):
        """display instance attribute and class name""" 
        print 'Your name is', self.name
        print 'My name is', self.__class__.__name__
    def showver(self):
        """display class(static) attribute"""
        print self.version # references FooClass.version 
        print FooClass.version # references FooClass.version 
    def addMe2Me(self, x): # does not use 'self' 
        return x+x
    
fool = FooClass()#Created a class instance for John Doe
fool = FooClass('ttttt')#Created a class instance for ttttt
fool.showname()
fool.showver()
print fool.addMe2Me(33)

#模块
'''模块是一种组织形式, 它将彼此有关系的 Python 代码组织到一个个独立文件当中。 '''
'''模块可以包含可执行代码, 函数和类或者这些东西的组合。'''
'''当你创建了一个 Python 源文件,模块的名字就是不带  .py 后缀的文件名。一个模块创
建之后, 你可以从另一个模块中使用 import 语句导入这个模块来使用。'''
import sys
#调用了标准输出的 write()方法,而且这次需要显式的在字符串中提供换行字符
sys.stdout.write('Hello World\n')#Hello World! 
sys.platform #'win32' 
sys.version #'2.4.2 (#67, Sep 28 2005, 10:51:12) [MSC v.1310 32 bit (Intel)]' 

#实用函数

print dir(fool)#显示对象的属性,如果没有提供参数, 则显示全局变量的名字 
help(fool)# 以一种整齐美观的形式 显示对象的文档字符串, 如果没有提供任何参数, 则会进入交互式帮助。
print int('2')        #将一个对象转换为整数 
print len(fool)        #返回对象的长度 
#open(fn, mode)  #以 mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文件 range([[start,]stop[,step])   返回一个整数列表。起始值为 start, 结束值为 stop - 1; start 默认值为 0, step默认值为1。 
#raw_input(str)  #等待用户输入一个字符串, 可以提供一个可选的参数 str 用作提示信息。 
print str(fool)        #将一个对象转换为字符串 
print type(fool)       #返回对象的类型(返回值本身是一个 type 对象!)  



#中文支持
# -*- coding: gbk -*-
#设置编码方式为gbk即可,下面三句话都正确

user = raw_input(unicode('输入中文名:', 'gbk'))
print "中文名为:" , unicode(user, 'gbk')

user = raw_input(unicode('输入中文名:', 'gbk'))
print "中文名为:" , user

user = raw_input('输入中文名:')
print "中文名为:" , user




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值