欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python学习之路:语法基础

程序员文章站 2022-03-20 23:28:51
...

Python:简单
适合领域: web网站和各种网络服务
系统工具和脚本
作为“胶水”语言把其他语言的开发模块包装起来

不适合:贴近硬件的开发,移动开法,游戏开发:c/c++

python对比:
c:编译为机器码,运行速度非常快,代码量非常多
java:编译为字节码,快,多
python:解释执行,慢,少。

python语法:
注释: “#” 注释一行
字符串可以用单双引号来表示
\n:表示换行 \t表示一个制表符

python中的raw字符串和多行字符串(三个单引号)
例: r‘(~-~)/’ //这里用了r后就不需要转义了 ,但是这个表示方法只能用在一行

     ‘’‘line1
            line2
            line3 ’‘’

python支持对整数和浮点数直接进行四则混合运算,不需要考虑类型,因为是动态变量

python中的布尔类型:
与运算:and(都为true才true) 或运算(or 只要有true就为true) 非运算(not True)

python创建list:

L=[‘mial’,’asd’,’qwe’] //list是一种有序的集合,可以随时添加和删除其中的元素
print L[0] //从0开始检索
print L[-1] //从倒叙开始访问,-1代表的就是qwe -2代表的是asd

//添加用append(‘paul’)方法 插入则用 L.insert(0, ‘paul’)
//删除用:pop():删除最末尾的东西, pop(0):删除检索位置在0上的数据
python创建tuple(元祖):

元祖与list的不同时,一旦创建,元祖内的内容就无法改变
t=(‘adam’,’lisa’,’bart’) tuple没有append(),insert(),pop()方法
//如何让tuple变
t=(‘a’,’b’,[‘A’,’B’]),此时我们就可以去改变【】中的值来变相的改变tuple了

python的if语句

age=20
if age >=18:
print ‘your age is ‘,age //注意缩进为4个空格,不要混用tab
print ‘adult’

python的if-else语句

if age >= 18:
print ‘adult’
else:
print ‘teenager’

python的for语句
L = [‘Adam’, ‘Lisa’, ‘Bart’]
for name in L: //这里需要注意in这个介词
print name

python的while循环
N = 10
x = 0
while x < N:
print x
x = x + 1

python的break循环的语句
sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum

python的多重循环
for x in [‘A’, ‘B’, ‘C’]:
for y in [‘1’, ‘2’, ‘3’]:
print x + y

python的dict(类似于键值对)
d = {
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}

可以通过 len() 来查看长度
如何输出 print d[‘Adam’] //==> 95
先判断 if ‘Paul’ in d:
print d[‘Paul’]
用方法输出
print d.get(‘Bart’) //如果这里没有时,返回None
特点:1.查找速度快,但是消耗大 2.排序无序 3.key不可变

dict的更新操作:
d[‘Paul’]=72 //如果key存在,赋值会覆盖以前值

dict的遍历操作:
for key in d:
print key //再一次告诉我们没有什么事是for无法解决的

python的set
set持有一系列的元素,但是这些元素互相之间不重复,类似于dict的key

创建方法:
s=set([‘A’,’B’,’C’]) //即使是s=set([‘A’,’B’,’C’,’C’])最后打印出来的也和前面一样,因为hi不能重复的
访问方法:
‘A’ in s //==>true 需要注意的是,大小写需区分

用处:
x = ‘???’ # 用户输入的字符串if x in weekdays:
print ‘input ok’
else:
print ‘input error’
//用于提前准备好的东西,一些长期不变的

遍历的方法:
for name in s:
print name
添加元素:用add方法
s=set([1,2,3])
s.add(4)
s.remove(4)

python的函数

//常用 int(‘123’) ==>123 abs(-20) ==>20 cmp(2,1) ==>1 str(123) ==>’123’
//编写函数

def my_abs(x):
    if x >= 0:
        return x
  else:
        return -x      //一定要注意的是':'  很多地方都会用
import math
def move(x, y, step, angle):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

x, y = move(100, 100, 60, math.pi / 6)  //如果不这样指定返回值是一个tuple

递归函数:

  def fact(n):
      if n==1:
          return 1
      return n*fact(n-1)   //递归,函数中含有函数

def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s    //这里的n=2是一个默认参数,不写也可以,默认参数只能写在后面

//可变参数
def fn(*args):
print args //这里的arg的个数是可以变的,可以用来求平均值的地方

python的切片操作

1.对list和tuple切片

 L=['Lisa','Bart','Adam','Paul']  
 L[0:3]   //只取前三个元素  L[:3] //0还可以省略  L[:] //表示从头到尾

2.对字符串切片
‘ABCDEFG’[:3] //切取前四个

python的迭代操作(Iteration)
迭代:对list or tuple,我们通过for循环来遍历整个历史,就称为迭代

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
...     print index, '-', name     //enumerate()函数表明,索引不是只按照index去寻找,而是通过函数来的

//针对dict的迭代,因为其本身就是key-value型,所以不用管

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()
# [85, 95, 59]
for v in d.values():    print v


for v in d.itervalues():
    print v                    //作用相同

//针对dict,同时迭代key和value

  for key,value in d.items():
      print key, ':', value    //key and values 同时迭代

python生成列表

//苦难的方法啊,循环

>>> L = []
>>> for x in range(1, 11):
...    L.append(x * x)    //生成list

列表的生成方法:

>>>L= [x * x for x in range(1, 11)]

//加判断式

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

//多层的表达式

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
相关标签: python