python入门系列(3) -- python语言基础语法

这篇博客详细介绍了Python的基础语法,包括内置数据类型、表达式、控制流、函数、类和对象等。涵盖了数字、字符串、列表、元组、集合、字典的使用,以及条件判断、迭代、函数、异常处理、类的定义和实例化等内容。此外,还提到了模块、多线程、文件操作、正则表达式等标准库的使用。
摘要由CSDN通过智能技术生成

本章主要根据 “python manual”(在安装python后附带)中的Tutorial简化整理而来。有时间可以查看官方原来的文档。遇到模块或函数不清楚的也可以查找Manual。


内置数据类型

和大多数动态语言一样,python中的变量是动态变量,所以定义时不需要指定变量类型,只跟实际赋值时有关(python的所有变量都是对象)。

numbers(数字)

数字的使用跟数学表达式一样

>>> (50-5*6)/4      # 数学表达式
5
>>> 7/3             # 默认返回floor
2
>>> 7/-3
-3
>>> 7/3.0           # 浮点数
2.3333333333333335

变量赋值

>>> width = 20
>>> x = y = z = 10  # 变量可以同时赋值
>>> x,y = 100,200   # 多个赋值
>>> print x, y
100 200

进制转换

>>> a=100
>>> hex(a)          # 十六进制
'0x64'
>>> oct(a)          # 八进制
'0144'

ascii码转换

>>> ord('a')        # 字母转数值
97
>>> chr(97)         # 数值转字母
'a'

string(字符串)

python通过单引号、双引号或三重引号引起来的表示字符串。在这里,使用单引号和双引号完全是一样的,使用单引号做引用,字串中可以双引号字符;使用双引号,字串中可以包含单引号,否则,需要加转义字符

>>> 'doesn\'t'
"doesn't"
>>> "doesn't"
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

跨行引用,则需要和用 \n\ 连接字符

>>> print "Usage: thingy [OPTIONS]\n\
     -h                        Display this usage message\n\
     -H hostname               Hostname to connect to"
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

使用三重引号,"""''' ,可以更方便地跨行字串

>>> print """
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
"""
 Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

原始字符串,通过在字符串前面加字母r,表示字串是raw string,不会对字串中的字符进行转义

>>> print r"""aaaaaaaa\nbbbb"""
aaaaaaaa\nbbbb

字符串可以通过+号进行连接,通过*号进行重复

>>> word = 'Help' + 'A'
>>> word
'HelpA'
>>> '<' + word*5 + '>'
'<HelpAHelpAHelpAHelpAHelpA>'

字串采用和C的一样的索引方式,下标从0开始。同时,子串可以使用分片的记法,冒号左边为开始字符的下标,右边为结束字符下标+1

>>> word[4]
'A'
>>> word[0:2]
'He'
>>> word[2:4]
'lp'

分片记法还用两个方便的默认值,左边默认为0,右边默认为整个字符串长度

>>> word[:2]    # The first two characters
'He'
>>> word[2:]    # Everything except the first two characters
'lpA'

分片记法,还可以使用负数下标,表示

>>> word[-1]     # The last character
'A'
>>> word[-2]     # The last-but-one character
'p'
>>> word[-2:]    # The last two characters
'pA'
>>> word[:-2]    # Everything except the last two characters
'Hel'

取子字符串时,如果超过范围,会被自动截取

>>> word[-100:200]
'HelpA'

字符串还可以步进式地截取字符。如:

>>> word[::2]
'HlA

>>> word[::-1]   # 倒序输出
'ApleH'

上面主要介绍字符串的截取和拼接,字符串其他常用操作如下:

  • 去左右空白字符或特殊字符
>>> "  aaaa   ".strip()          # 去左右空白字符
aaaa
>>> "  aaaa   ".rstrip()         # lstrip去左侧空格,rstrip去右侧空格
  aaaa   
>>> "  aaaa,,,...".rstrip(',.!') # 去指定字符   
'  aaaa'
  • 取字符串长度
>>> len(word)
5
  • 定位字符或子串
>>> "aaabbbccc".index('bb')
3
>>> "aaabbbccc".index('bc')
5
  • 比较字符串
>>> cmp('aa','bb')
-1
>>> cmp('aa','aa')
0
>>> cmp('bb','aa')
1
  • 字符串大小写转换
>>> 'aaa'.upper()
'AAA'
>>> 'Aaaa'.lower()
'aaaa'
  • 字符串查找
>>> 'aaabbbccc'.find('bbb')
3

index如果没找到会抛出异常,find没找到返回-1

  • 字符串替换
>>> "aaabbbaaadddd".replace('a', 'e')
'eeebbbeeedddd'
>>> "aaabbbaaadddd".replace('aaa', 'e')
'ebbbedddd'
  • 字符串分割
>>> "aaaaa;;bbb;;ccc;ddd;".split(';;')
['aaaaa', 'bbb', 'ccc;ddd;']            # 字符串数组
>>> "aaaaa;bbb;ccc;ddd;".split(';')
['aaaaa', 'bbb', 'ccc', 'ddd', '']
  • 合并字符串
>>> ''.join(['aaaa', 'bbb', 'ccc'])
'aaaabbbccc'
>>> ';'.join(['aaaa', 'bbb', 'ccc'])
'aaaa;bbb;ccc'

python的字符串是不可修改的。如修改一个字符,应使用replace,或使用左边字串+新字符+右边字串拼接而成

list(数组)

python使用如下语法定义list,list的元素类型可以不一样

>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]

list访问的分片记法与字符串相似,而且一样使用+进行连接,* 进行重复

>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']

与字符串不同,python的list是可以修改的

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']

返回list大小

>>> a = ['a', 'b', 'c', 'd']
>>> len(a)
4

list可以嵌套,构造多维数组

>>> p=['a', 'b']
>>> p2=['a', p, 'b']
>>> p2
['a', ['a', 'b'], 'b']

list其他常用操作:

  • append(x) 添加一个元素到末尾
  • extend(x) 相当于+
  • insert(i, x) 在i插入x
  • remove(x) 删除x
  • pop() 弹出
  • index(x) 返回第一个匹配x的下标
  • count(x) 返回匹配x的个数
  • sort(cmp=None, key=None, reverse=False) 排序
  • reverse() 生成反序数组

注意append和+的区别,append一个数组,是把数组当成一个元素添加进去,+数组是把所有元素添加进去

list还提供了一种叫做 list comprehensions 方法可以从一个list产生新的list,它参照了函数式编程中的filter-map-reduce的思想[参考第5章]

>>> l=range(10)                 
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [x**2 for x in l if x%2]        # 返回list中奇数的平方
[1, 9, 25, 49, 81]

tuple(元组)

tuple由多个值和逗号组成,前后可加括号,也可以不加

>>> t = 12345, 54321, 'hello!'
>>> t[0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值