Phython学习—— 基础语法

一、基础知识

  1. 严格控制代码缩进,使用缩进控制代码块,不需要{}

  2. 一行可以显示多条语句用分号 ; 隔开。

  3. 字符串表示,三引号用来表示多行

    str = 'hello world'
    str = "hello wordl"
    str = """hello
    		world"""
    str = '''hello
    		world'''	
    
  4. 注释使用# 注释内容,多行注释'''多行注释内容''' 或者 """多行注释内容"""

  5. 变量赋值,phython变量赋值不需要声明数据类型

    a = 1
    b = 11.12
    c = "jack"
    a,b,c = 1,11.12,"jack"
    d = e = f = 10
    
  6. 五种标准数据类型

    Numbers(数字): int 、float 、complex
    String(字符串)
    List(列表)
    Tuple(元组)
    Dictionary(字典)

  7. 字符串常用操作

    str = "abcdef"
    
    print str           # 输出完整字符串
    print str[0]        # 输出字符串中的第一个字符
    print str[2:5]      # 输出字符串中第三个至第六个之间的字符串
    print str[2:]       # 输出从第三个字符开始的字符串
    print str * 2       # 输出字符串两次
    print str + "TEST"  # 输出连接的字符串
    
  8. 列表List

    list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
    tinylist = [123, 'john']
    
    print list               # 输出完整列表
    print list[0]            # 输出列表的第一个元素
    print list[1:3]          # 输出第二个至第三个元素 
    print list[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinylist * 2       # 输出列表两次
    print list + tinylist    # 打印组合的列表
    
  9. 元组,元组只读,复制后不能更新

    tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
    tinytuple = (123, 'john')
     
    print tuple               # 输出完整元组
    print tuple[0]            # 输出元组的第一个元素
    print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
    print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
    print tinytuple * 2       # 输出元组两次
    print tuple + tinytuple   # 打印组合的元组
    
  10. 字典key-value

    dict = {}
    dict['one'] = "This is one"
    dict[2] = "This is two"
    tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
    
    print dict['one']          # 输出键为'one' 的值
    print dict[2]              # 输出键为 2 的值
    print tinydict             # 输出完整的字典
    print tinydict.keys()      # 输出所有键
    print tinydict.values()    # 输出所有值
    
    dict()                        # 创建空字典
    dict(a='a', b='b', t='t')     # 传入关键字
    dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
    dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
    
  11. 数据类型转换函数

    int(x , base = 10) # x为整型或字符串,将x转换为int类型,base为进制数,默认为十进制
    float(x)
    str(s) # 将对象x转换为字符串
    tuple(s) #将序列s转换为元组,序列可以是元组、List、字典
    list(s) #将序列s转换为一个列表
    chr(i) #将一个整数转换为一个ASCII 字符
    unichr(x) # 将一个整数转换为Unicode字符
    ord(x) #将一个字符转换为它的整数值
    hex(x) #将一个整数转换为一个十六进制字符串
    oct(x) #将一个整数转换为一个八进制字符串

  12. 运算符

    数值运算符:+、-、*、/、**、//
    	其中:
    	**为幂运算:10**20  #10的20次方
    	//为整除运算:9//2=4  #向下取整
    位运算符:&|、^、~、>><<
    逻辑运算符:and、or、not #0为false,1为true
    		 x1 and x2  或者 not x1
    成员运算符:in、not in
    		 a in list #判断序列中是否存在指定值,返回ture or false
    身份运算符:is、is not #判断两个标识符是否引用同一个对象
    		 x is y
    
  13. 在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

  14. 参数传递中,若传递的是不可变更的对象则函数不会修改参数值,类似值传递。若传递的参数是可修改对象则类似引用传递。

二、逻辑结构

  1. 条件判断结构
    	if x == 1:
    		xxx
    	elif x == 2:
    		xxx
    	else:
    		xxx
    
  2. 循环结构
    结构一:
    while i==1:
    	print "yes"
    	if i==10:
    		break;
    	i++
    else:  # 在while正常执行结束后执行,如果是break结束则不执行
    	print "no"
    结构二:
    for letter in 'Python':     # 第一个实例
       print '当前字母 :', letter
       
    fruits = ['banana', 'apple',  'mango']
    for fruit in fruits:        # 第二个实例
       print '当前水果 :', fruit
    
    for num in range(10,20):  # 迭代 10 到 20 之间的数字
       for i in range(2,num): # 根据因子迭代
          if num%i == 0:      # 确定第一个因子
             j=num/i          # 计算第二个因子
             print '%d 等于 %d * %d' % (num,i,j)
             break            # 跳出当前循环
       else:                  # 循环的 else 部分
          print num, '是一个质数'
          
    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    for key, value in dic.items():
        print(key, value, sep=':', end=' ')
    for key in dic.keys():
    	print(key, end=' ')
    	
    languages = ['Python', 'R', 'Matlab', 'C++']	
    for i, language in enumerate(languages, 2):
        print(i, 'I love', language)
    print('Done!')
    
    
  3. 函数
    # 可写函数说明
    def sum( arg1, arg2 ):
       # 返回2个参数的和."
       total = arg1 + arg2
       print "函数内 : ", total
       return total
    total = sum( 10, 20 )
    

三、数学函数、随机函数

部分函数需要import math

函数描述
abs(x)返回x的绝对值
ceil(x)向上取整
cmp(x,y)x<y返回-1,x==y返回0,x>y返回1
exp(x)返回e的x次幂(ex)
floor(x)向下取整
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
max(x1, x2,…)返回给定参数的最大值,参数可以为序列。
min(x1, x2,…)返回给定参数的最小值,参数可以为序列。
pow(x, y)x**y 运算后的值。
round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)返回数字x的平方根
random()随机生成下一个实数,它在[0,1)范围内。
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。
cos(x)返回x的弧度的余弦值。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
acos(x)返回x的反余弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)将角度转换为弧度
pi数学常量 pi(圆周率,一般以π来表示)
e数学常量 e,e即自然常数(自然常数)。

四、基本数据类型函数

  1. 列表
    list.append(obj) #添加对象
    list.count(obj)	 #统计某个元素在列表中出现的次数
    list.extend(seq) #在列表末尾一次性追加另一个序列中的多个值
    list.index(obj)	 #从列表中找出某个值第一个匹配项的索引位置
    list.insert(index, obj)	 #将对象插入列表,index为插入位置
    list.pop([index=-1]) #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    list.remove(obj) #移除列表中某个值的第一个匹配项
    list.reverse() #反向列表中元素
    list.sort(cmp=None, key=None, reverse=False) #对原列表进行排序
    
  2. 元组
    元组合并:tup3 = tup1 + tup2
    删除元组: del tup
    元组迭代: for x in (1, 2, 3): print x
    元素是否存在: 3 in (1, 2, 3)
    
  3. 字典
    dict.clear()  #删除字典内所有元素
    dict.copy()  #返回一个字典的浅复制
    dict.fromkeys(seq[, val])  #创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
    dict.get(key, default=None)  #返回指定键的值,如果值不在字典中返回default值
    dict.has_key(key)  #如果键在字典dict里返回true,否则返回false
    dict.items()  #以列表返回可遍历的(键, 值) 元组数组
    dict.keys()   #以列表返回一个字典所有的键
    dict.update(dict2)  #把字典dict2的键/值对更新到dict里
    dict.values()  #以列表返回字典中的所有值
    pop(key[,default])  #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    popitem()  #返回并删除字典中的最后一对键和值。
    dict.setdefault(key, default=None)  #字典中包含有给定键,则返回该键对应的值,如果键不存在于字典中,将会添加键并将值设为默认值,返回为该键设置的值。
    

五、推导式

1. 列表推导式 
[ expr for value in collection [if condition] ]
x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x]
print(y)
# [-8, -4, 0, 4, 8]

x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]

x = [(i, i ** 2) for i in range(6)]
print(x)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

a = [(i, j) for i in range(0, 3) for j in range(0, 3)]
print(a)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

a = [(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
print(a)
# [(0, 2)]

2. 元组推导式 
( expr for value in collection [if condition] )

a = (x for x in range(10))
print(a)
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

3. 字典推导式
{ key_expr: value_expr for value in collection [if condition] }

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

4. 集合推导式
{ expr for value in collection [if condition] }
c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

六、异常处理

try:
    检测范围
except Exception[as reason]:
    出现异常后的处理代码
-------------------------------------
try:
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError:
    print('打开文件出错')
------------------------------------
try:
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError as error:
    print('打开文件出错\n原因是:' + str(error))
--------------------------------------------
try:
    int("abc")
    s = 1 + '1'
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError as error:
    print('打开文件出错\n原因是:' + str(error))
except TypeError as error:
    print('类型出错\n原因是:' + str(error))
except ValueError as error:
    print('数值出错\n原因是:' + str(error))
else:
    print('error')
finally:
    print("executing finally clause")
-------------------------------
try:
    s = 1 + '1'
    int("abc")
    f = open('test.txt')
    print(f.read())
    f.close()
except (OSError, TypeError, ValueError) as error:
    print('出错了!\n原因是:' + str(error))

  • 12
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值