python 之路-语法(一)
Python 是一种面向对象、解释型计算机程序语言,语法简洁清晰,特色之一是强制用空白符
作为语句缩进,既支持面向过程编程也支持面向对象编程。
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的
标点符号和英文单字,让代码看起来更加整洁美观。
Python是一种高级语言,使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层
细节Python 可以直接从源代码运行,在计算机内部python解释器把源代码转换成字节码的中
间形式,然后在把它编译成计算机使用的机器语言。
Python 具有丰富和强大的库,它常被称为‘胶水语言’,能把用其他语言制作的各种模块
(尤其是C/C++)很轻松地连结在一起。python的标准库很庞大,它可以帮助你处理各种工作,
包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮
件、XML、HTML、WAV文件、密码系统、GUI(图形用户界面)、TK和其他与系统有关的操作。
一、 python 基础
1. python 数据类型有整数、长整数、浮点数、复数和布尔型。
整 型(int) python自动识别数字类型,如果输入的类型是整型就会存储整型
长整型(long) 如果整数发生溢出python会自动将整数转换为长整型(或有字母L) 浮点型(float) 用来处理实数,既带有小数的数字 例:3.21 和 3.3E-1
复数型(complex) 如 1 + 2j 2.2 + 1.1j
布尔型(bool) 1 或 0 对应 Ture 或 False
2.字符串
python中可用单引号或双引号来表示字符串;
python使用三引号(''' 或 """) 来表示多行字符串,通过'\'转义;
通过r 进行反转义-既原样显示,通常r'\n' 就会显示\n而不是换行;
python允许处理unicode字符串,前面加u ,例:u'shuoming u'。
3.变量命名原则
a. 大小写字母、数字或下划线组成;
b. 数字不能为第一位;
c. 不能与关键字重复;
注:以下关键字不能声明为变量名;
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else','except', 'exec', 'finally', 'for', 'from', 'global', 'if','import',
'in', 'is','lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try'
, 'while', 'with','yield']
变量在内存中的变化机制--变量赋值
变量中如果修改字符串就会重新开辟空间,C语言中没有字符串的概念只有字符概念,
所有字符集合组成字符串的概念
name1 = 'apache'
name2 = name1
如果变量name1再次被赋值后,变量name2的值不会改变:由于变量name1赋值给变量
name2时只是将其信息保留在变量name2中,并没有将'apache'赋值给name2;
4.输入输出
>>> name = input('请输入用户名:') #将输入的用户名赋值给变量name
请输入用户名:shuoming
>>> print(name) #输出变量name信息
shuoming
5.运算符及优先级
(1)运算符
算数运算符 : + - * / %(商取余) **(幂运算) // (商取整)
比较运算符 : == != <> > < >= <= is
赋值运算符 : = += -= *= /= %= **= //=
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
位运算符 : & | ^ ~ << >>
逻辑运算符 : and or not
成员运算符 : in not in
身份运算符 : is not is
# "+" 两个对象相加 ,数字 或 字符串
# “-” 去一个数字的相反数或者实现两个数字相减
# "*" 两个数的相乘或者字符串重复
# < > != <= >= == 小于、大于、不等于、小于等于、大于等于、等于号 ,返回一个bool值
# 与运算两个1为1,其他为0
# 或运算两个0为0,其他为1
# 异或运算两个1 、0 为0,其他为1
# 左移一个单位相当于乘2,左移两个单位相当于乘4,左移n个单位相当于乘2的n次幂。
# is 判断其中”==“ 表示值相等,而 ”is“ 表示同一对象。
(2)优先级
# 优先级排名第一名---函数调用、寻址、下标
# 优先级排名第二名---幂运算 **
# 优先级排名第三名---翻转运算~
# 优先级排名第四名---正负号
正负号的使用方法紧挨着操作数的,否则会出错,这就说明正负号的优先级优于加减乘除运算
# 优先级排名第五名---* / %
# 优先级排名第六名---+ -
# 优先级排名第七名--- << >>
# 优先级排名第八名---按位 & ^ |
# 优先级排名第九名---比较运算符
# 优先级排名第十名---逻辑 not and or
# 优先级排名十一名---lambda 表达式
二、数据结构
python 中有三种内建的数据结构:列表、元祖、字典。
1.列表
定义--list 是处理一组元素的集合容器,列表是可变得数据结构,例如:[1,2,'str'] []
方法-- in:判断列表是否包含某项用in;支持索引和切片;使用len() 查看长度;使用del
删除列表中的项
# in
>>> print students
['zhao', 'wang', 'zhang', 'liu']
>>> "wang" in students
True
>>> "lihongye" in students
False
>>>
# len
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> len(test_list)
7
# del
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> del test_list[0] # 删除第一个元素
>>> test_list
['python', 'search', 'python', 'automatic', 1, 2]
>>> del(test_list[2:4]) # 删除2,3两个元素,也可间隔元素删除
>>> test_list
['python', 'search', 1, 2]
>>> del test_list # 删除整个列表
>>> test_list
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'test_list' is not defined
>>>
list 常用函数:
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort',‘clear’]
pop : 只删除列表最后一个值;
remove :可以删除特定值 例:name_list.remove('python')
insert :在固定位置插入 例:name_list.insert(3,"python")
sort : 排序后特殊字符在前
extend : a+b 或 a.extend(b)
copy : 拷贝(深拷贝和浅拷贝)
1)append
>>> name_list.append("python")
>>> name_list
['shuoming', 'python', 'search', 'python']
2)index
>>> name_list.index("python")
1
3)count
>>> name_list.count("python")
2
4)insert
>>> name_list.insert(3,"python")
>>> name_list
['shuoming', 'python', 'search', 'python', 'python']
5)pop()
>>> name_list.pop()
'python'
>>> name_list
['shuoming', 'python', 'search', 'python']
6)remove
>>> name_list.remove('python')
>>> name_list
['shuoming', 'search', 'python']
7)reverse
>>> name_list
['shuoming', 'search', 'python', '@', '$']
>>> name_list.reverse()
>>> name_list
['$', '@', 'python', 'search', 'shuoming']
8)sort
>>> name_list
['shuoming', 'search', 'python', '@', '$']
>>> name_list.sort()
>>> print (name_list)
['$', '@', 'python', 'search', 'shuoming']
9)clear
>>> test_list
['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]
>>> test_list.clear()
>>> test_list
[]
>>>
2.元祖
元祖(tuple)是通过圆括号()其中用逗号分隔的项定义例如:(1,2,'str');与列表
很相似,但元祖不能修改。
由于元祖不能更改,因此数据更加安全;
方法-- 可以使用 in 判断元素是否在tuple中,支持索引和切片;
A : tuple与list可以互相转换,使用内置函数list()和tuple()。
tuple_list = [1,2,'str']
print(tuple_list) # [1,2,'str']
to_tuple = tuple(tuple_list)
print(to_tuple) # (1,2,'str')
to_list = list(to_tuple)
print(to_list) # [1,2,'str']
B : 元祖最常用法是打印语句
name = 'Mr li'
age = 25
msg ='''
name : %s
age : %d
''' % (name,age)
print(msg)
name : shuoming
age : 10
元祖常用函数如下:
count(value) -- 返回元祖中值为values元素的个数
num_tuple = (1,2,'str')
num_ruple.count(2) # 1
index(value,[start,[stop]]) -- 返回列表中出现的值第一个value的索引,
如果没有则返回 ValueError
t = (1, 2, 3, 1, 2, 'str')
print(t.index(3))
try:
print(t.index(str))
except ValueError:
print("ValueError") # ValueError
3.字典
字典是另一种可变容器模型,像其他容器模型一样可随意存储任一类型对象。
字典由key和value组成键值对。字典也被称作关联数组或哈希表。
每个键和值用冒号隔开(:),每对用逗号分开,整体放在花括号中{}例:
dict = {'key1':'value1','key2':'value2','key3':'value3'}
键必须唯一,值可以重复,值可取任意数据类型。
三、控制流
1.if 语句
if 条件判断表达式
if condition:
action1
elif condition:
action2
else:
action3
# action 必须有缩进量 例如:
a = 10
if a>=80:
print("优秀")
elif a>=60:
print("及格")
else:
print("不及格")
2.while 语句
while 循环为真时执行循环体
while 条件为真:
循环执行该部分语句
else:
条件为假,执行该部分语句
例:
i=5
while i:
print "hello"
i=i-1
else:
print "结束"
3.for 语句
a=range(1,5)
print a
range(1,5,2) 步长为2
for k in range(0,3): (range函数 集合) 或者 [1,2,3,4,5] 等集合
k in [1,2,3,4,5]
k in (1,2,3,4,5)
i=0
print i
i=i+1
print i
注: 当 循环字典的时候,需要两个变量
k={"姓名":"calvin","籍贯":"state"}
for ks,vs in k.items():
print ks
print vs
4.break 语句
break 语句是强制停止循环执行的意思,break语句用刚在循环语句中,出现break
的地方直接停止本层循环执行。
例:
a=1
while a:
print a
a=a+1
if a==5:
break
5. continue 语句
continue 语句的功能是强制停止循环中的这一次执行,直接跳到下一次执行。
例:
a=1
while a<7:
a=a+1
if a==3:
continue
print a
-----------------------见续 python 之路-语法(二)-----------------------