raw_input(); ex:name = raw_input('please enter your name: ')
print; ex:print 'hello, world','mio'
整数、浮点数、
字符串:转移字符\也可以用r'', r''表示''内部的字符串默认不转义 ex:print 'I'm ok.' print r'\\t\'
布尔:可以用and or not运算 ex:True or False True and True not True
空值:None
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型
变量:变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头 ex:a=1
python的字符串变量跟java一样,变量指向字符串内存地址,在计算机内部,可以把任何数据都看成一个“对象”, 而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来
常量:所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI = 3.14159265359 备注 运算:10 / 3=3 10.0 / 3=3.3333333333333335
4.1Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换:ord('A')--》65 chr(65)--》'A'
4.2Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示 print u'中文'--->中文 u'中'-->u'\u4e2d'
4.3把u'xxx'转换为UTF-8编码的'xxx'用encode('utf-8')方法:u'ABC'.encode('utf-8') --》'ABC' u'中文'.encode('utf-8')--》'\xe4\xb8\xad\xe6\x96\x87' 文字符转换后表示的UTF-8的值和Unicode值相等(但占用的存储空间不同),而中文字符转换后1个Unicode字符将变为3个UTF-8字符
4.4len()函数可以返回字符串的长度
4.5由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
4.6格式化:%d整数 %f浮点数 %s字符串 %x十六进制整数 ex:
'Hi, %s, you have $%d.' % ('Michael', 1000000) -->'Hi, Michael, you have $1000000.'
其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
```python
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
```
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
5.1list:
>>> classmates = ['Michael', 'Bob', 'Tracy']
5.2用len()函数可以获得list元素的个数:
>>> len(classmates)
5.3用索引来访问list中每一个位置的元素,记得索引是从0开始的:
>>> classmates[0]
5.4如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:
>>> classmates[-1]
以此类推,可以获取倒数第2个、倒数第3个classmates[-2] classmates[-3] 5.5可以往list中追加元素到末尾:
>>> classmates.append('Adam')
5.6也可以把元素插入到指定的位置,比如索引号为1的位置:
>>> classmates.insert(1, 'Jack')
5.7要删除list末尾的元素,用pop()方法:
>>> classmates.pop()
5.8要删除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1)
5.9要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> classmates[1] = 'Sarah'
5.10 list里面的元素的数据类型也可以不同,比如
>>> L = ['Apple', 123, True]
5.11 list元素也可以是另一个list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme'] >>> len(s) -->4
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字
>>> classmates = ('Michael', 'Bob', 'Tracy')
备注:
1.如果tuple里面包含list,list里面的元素是可以变得,不变的是这个list
2.如果要定义一个只有1个元素的tuple,如果你这么定义:>>> t = (1)
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。 所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,)
>>> t
(1,)
Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum
循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
>>> d['Adam'] = 67
如果key不存在,dict就会报错,要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
>>> 'Thomas' in d
False
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
要删除一个key,用pop(key)方法,对应的value也会从dict中删除
>>> d.pop('Bob')
要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(4)
通过remove(key)方法可以删除元素:
>>> s.remove(4)
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])
Python内置了很多有用的函数,我们可以直接调用。比如求绝对值的函数abs
调用函数的时候,如果传入的参数数量不对或者参数类型不能被函数所接受,会报TypeError的错误
Python内置的常用函数还包括数据类型转换函数,比如int()函数可以把其他数据类型转换为整数: >>> int('123') 123 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”: >>> a = abs # 变量a指向abs函数 >>> a(-1) # 所以也可以通过a调用abs函数
在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
def my_abs(x):
if x >= 0:
return x
else:
return -x
如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。 return None可以简写为return。
1.位置参数,就是跟java差不多定义好了的参数
2.默认参数,设置默认值的参数,如下面可以调用power(5)也可以调用power(5, 3)。
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
3.可变参数,参数数量是可以变的,可以调用 calc(1, 2)或者 calc(1)等
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
4.关键字参数 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
5.命名关键字参数 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw检查 如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。这种方式定义的函数如下:
def person(name, age, *, city, job):
print(name, age, city, job)
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
def person(name, age, *args, city, job):
print(name, age, args, city, job)
6.参数组合 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
比如定义一个函数,包含上述若干种参数:
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
最神奇的是通过一个tuple和dict,你也可以调用上述函数:
>>> args = (1, 2, 3, 4)
>>> kw = {'d': 99, 'x': '#'}
>>> f1(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}