黑马程序员技术交流社区

标题: 【上海校区】python入门(三)--基础 [打印本页]

作者: 梦缠绕的时候    时间: 2018-9-5 09:36
标题: 【上海校区】python入门(三)--基础
注释:
以“#”开头
代码块
以冒号“:”结尾的缩进(Tab建)语句,大小写敏感
字符串:
用‘’或者“”表示,如果‘’本身也是一个字符,可以用“”括起来,如:print "I'm a girl."
如果外面的是‘’怎么办,可以用转义字符:‘\'’,如:print 'I\'m a girl.'转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
在''前加上r,就可以不用转义,直接打印,如: print r'\\\t\\\n\\'
如果字符串内部有多次换行,用'''...'''格式表示,如: print '''aaa
... bbb
... ccc'''
Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换:如:
>>> chr(65)
'A'
>>> ord('A')
65
>>> ord('a')
97
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:
>>>print u'中国'
中国
>>> u'中国'
u'\u4e2d\u56fd'
字符编码的转换:
中文会转为3个字符,与英文有区别
UNICODE-->UTF-8:
>>>u'ABC'.encode('utf-8')     
'ABC'
>>>u'中文'.encode('utf-8')
'\xe4\xb8\xad\xe6\x96\x87'
UTF-8-->UNICODE:
>>>'ABC'.decode('utf-8')
u'ABC'
>>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
u'\u4e2d\u6587'
布尔值:
布尔值可以用‘and’、'or'、'not'来运算,如:True and False
空值:
用‘None’表示,与0不同。
除法
精确与非精确的区别:
>>>10/3
3
>>>10.0/3
3.3333333333333335
字符串
字母与数字可以相互转换,如下所示
字母转为数字:
>>> ord('B')
66
数字转为字母:
>>> chr(66)
'B'
字符编码之间可以相互切换,如下所示
UNICODEàUTF-8
>>> u'apple'.encode('utf_8')
'apple'
>>> u'中文'.encode('utf-8')
'\xe4\xb8\xad\xe6\x96\x87'
UTF-8àUNICODE
>>> u'apple'.decode('utf_8')
'apple'
>>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
u'\u4e2d\u6587'
引用的.py文件内部,必须写上这两行:
#!/user/bin/evnpython
# -*-coding:utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
格式化一个字符串,需要用‘%’,有如下使用:
%d
整数(可定义位数,补0)
%f
浮点数(可定义位数,小数点后位数,补0)
%s
字符串(可任意使用)
%x
十六进制整数
例如:
>>>'hello,%s'% 'kitty'
'hello,kitty'
>>>'%6d--%%%.3f'%(2018,10.0/3)
'  2018--%3.333'
List
列表,类似于java中的数组,是有序的,可以添加和删除
定义
>>> Fruits=['apple','pear','banana']
>>> Fruits
['apple', 'pear', 'banana']
长度
>>> len(Fruits)
3
索引:从0开始,可以为负数,-1时代表倒数第一个元素
>>> Fruits[0]
'apple'
>>> Fruits[-1]
'banana'
替换:
>>> Fruits[1]='peach'
>>> Fruits[1]
'peach'
添加:
末尾添加append
定位添加insert(可通过负数索引添加,-1即倒数第二个元素,依次类推)
>>> Fruits.append('strawberry')
>>> Fruits
['apple', 'peach', 'banana', 'strawberry']
>>> Fruits.insert(2,'pear')
>>> Fruits
['apple', 'peach', 'pear', 'banana', 'strawberry']
>>> Fruits.insert(-1,'watermelon')
>>> Fruits
['apple', 'peach', 'pear', 'banana', 'watermelon', 'strawberry']
>>> Fruits.insert(-2,'mango')
>>> Fruits[-3]
'mango'
删除:不加参数,直接删除最后一个元素,并返回该元素;指定位置,即删除指定位置处元素,如是负数-1,即删除最后一个元素
>>> Fruits.pop()
'strawberry'
>>> Fruits
['apple', 'peach', 'pear', 'banana', 'mango', 'watermelon']
>>> Fruits.pop(1)
'peach'
>>> Fruits
['apple', 'pear', 'banana', 'mango', 'watermelon']
>>> Fruits.pop(-1)
'watermelon'
>>> Fruits
['apple', 'pear', 'banana', 'mango']
排序(list是可变对象,因此可以排序)
>>> Fruits.sort()
>>> Fruits
['apple', 'banana', 'mango', 'pear']
Tuple
元祖,类似于list,但是是无序的,一旦初始化就不能修改,是可重复的
定义,当定义为空和只有一个整型的元素需注意
>>> Students
('Andy', ['Belly', 'Cindy'], 'Andy', 'Daniel')
>>> t = ()
>>> t
()
>>> t = (1,)
>>> t
(1,)
长度
>>> len(Students)
4
索引:从0开始,可以为负数,-1时代表倒数第一个元素
>>> Students[0]
'Andy'
>>> Students[-3]
['Belly', 'Cindy']
条件判断
if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
>>> grade = 99
>>> if grade <60 :
...     print 'fail'
... elif grade >= 60 and grade <85:
...     print 'pass'
... else:
...     print 'good'
...
good
循环
For
其中range(x)函数代表从0到小于x的数
>>> for fruit in Fruits:
...     print fruit
...
apple
pear
banana
mango
>>> for x in range(5):
...     print x
...
0
1
2
3
4
while
>>> sum = 1
>>> n = 0
>>> while n<5:
...     n = n + 1
...     sum = sum + n
...
>>> print sum
16
Dic
字典,类似于map,键值对的存储格式
定义
>>> Grades={'Andy':95,'Belly':88,'Tom':77}
>>> Grades
{'Andy': 95, 'Belly': 88, 'Tom': 77}
长度
>>> len(Grades)
3
索引:按key索引
>>> Grades['Andy']
95
替换:
>>> Grades['Andy']=97
>>> Grades
{'Andy': 97, 'Belly': 88, 'Tom': 77}
判断key是否存在,有两种方式:
一、in判断,返回bool类型的值
二、get函数判断,若无,指定返回值
>>> 'Jerry' in Grades
False
>>> 'Tom' in Grades
True
>>> Grades.get('Jerry',-1)
-1
>>> Grades.get('Tom',-1)
77
删除,必须指定删除的key
>>> Grades.pop('Tom')
77
>>> Grades
{'Andy': 97, 'Belly': 88}
Set
与set类似,也是一组key的集合,但是不存储value
定义,重复元素自动过滤
>>> Numbers = set([1,2,3,4,3,2,1])
>>> Numbers
set([1, 2, 3, 4])
长度,只计算过滤后的值
>>> len(Numbers)
4
添加,重复添加会自动过滤
>>> Numbers.add(5)
>>> Numbers
set([1, 2, 3, 4, 5])
>>> Numbers.add(5)
>>> Numbers
set([1, 2, 3, 4, 5])
删除
>>> Numbers.remove(4)
>>> Numbers
set([1, 2, 3, 5])
Set可以看成是数学上无序且无重复元素的集合,因此可以求交集和并集:
>>>Numbers
set([1, 2, 3,5])
>>>Numbers2 = set([1,5,6,7,2])
>>>Numbers & Numbers2
set([1, 2, 5])
>>>Numbers | Numbers2
set([1, 2, 3, 5,6, 7])


作者: 不二晨    时间: 2018-9-6 11:15
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2