Merlin_li

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、列表

  列表是我们平时最常用的数据类型之一,通过列表我们可以完成数据的存储和修改等操作

  1、定义一个列表

li = ["Merlin","li","sun","zhou","wu"]

  2、切片

>>> li[0:3]
['Merlin', 'li', 'sun']

>>> li[-1]  #-1是最后一个
'wu'

>>> li[:3]  #当不填数值时默认是从最开始或最后
['Merlin', 'li', 'sun']

>>> li[-3:-1]  #如果是为从后取的时候需要注意 数字是从小到大
['sun', 'zhou']

>>> li[:-1:2]  #如果需要隔位选取的时候可以增加步长
['Merlin', 'sun']

  3、追加

>>> li.append('aaa')
>>> li
['Merlin', 'li', 'sun', 'zhou', 'wu', 'aaa']


>>> li.insert(0,'bbb')
>>> li
['bbb', 'Merlin', 'li', 'sun', 'zhou', 'wu', 'aaa']

  4、删除

>>> li
['bbb', 'Merlin', 'li', 'sun', 'zhou', 'wu', 'aaa']
>>> li.remove("sun")
>>> li
['bbb', 'Merlin', 'li', 'zhou', 'wu', 'aaa']

  5、修改

>>> li
['bbb', 'Merlin', 'li', 'zhou', 'wu', 'aaa']
>>> li[1] = 'wang'
>>> li
['bbb', 'wang', 'li', 'zhou', 'wu', 'aaa']

  6、查询

>>> li.index("li")
2

  7、扩展

>>> li.count("li")
1

>>> li.sort()
>>> li
['aaa', 'bbb', 'li', 'wang', 'wu', 'zhou']

  

二、运算

  运算分为七种,算数运算、比较运算、赋值运算、逻辑运算、成员运算、身份运算、位运算;

(1)算数运算符

 

操作符描述符例子
+ 加法 - 对操作符的两侧增加值 a + b = 30
- 减法 - 减去从左侧操作数右侧操作数 a - b = -10
* 乘法 - 相乘的运算符两侧的值 a * b = 200
/ 除 - 由右侧操作数除以左侧操作数 b / a = 2
% 模 - 由右侧操作数和余返回除以左侧操作数 b % a = 0
** 指数- 执行对操作指数(幂)的计算 a**b = 10 的幂 20
// 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 9//2 =  4 而 9.0//2.0 = 4.0

 

(2)比较运算符:

 

运算符描述示例
== 检查,两个操作数的值是否相等,如果是则条件变为真。 (a == b) 不为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a != b) 为 true.
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a <> b) 为 true。这个类似于 != 运算符
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (a > b) 不为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 (a < b) 为 true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 (a >= b) 不为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 (a <= b) 为 true.

 

(3)赋值运算符:

运算符描述示例
= 简单的赋值运算符,赋值从右侧操作数左侧操作数 c = a + b将指定的值 a + b 到  c
+= 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 c += a 相当于 c = c + a
-= 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 c -= a 相当于 c = c - a
*= 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 c *= a 相当于 c = c * a
/= 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 c /= a 相当于= c / a
%= 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 c %= a is equivalent to c = c % a
**= 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 c **= a 相当于 c = c ** a
//= 地板除,并分配一个值,执行地板除对操作和赋值给左操作数 c //= a 相当于 c = c // a

(4)逻辑运算符:

运算符描述示例
and 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。 (a and b) 为 true.
or 所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真。 (a or b) 为 true.
not 所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。 not(a and b) 为 false.

(5)成员运算符:

操作符描述示例
in 计算结果为true,如果它在指定找到变量的顺序,否则false。 x在y中,在这里产生一个1,如果x是序列y的成员。
not in 计算结果为true,如果它不找到在指定的变量顺序,否则为false。 x不在y中,这里产生结果不为1,如果x不是序列y的成员。

(6)身份运算符:

运算符描述例子
is 计算结果为true,如果操作符两侧的变量指向相同的对象,否则为false。 x是y,这里结果是1,如果id(x)的值为id(y)。
is not 计算结果为false,如果两侧的变量操作符指向相同的对象,否则为true。 x不为y,这里结果不是1,当id(x)不等于id(y)。

 (7)位运算符:

操作符描述示例
& 二进制和复制操作了一下,结果,如果它存在于两个操作数。 (a & b) = 12 即 0000 1100
| 二进制或复制操作了一个比特,如果它存在一个操作数中。 (a | b) = 61 即 0011 1101
^ 二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。 (a ^ b) =  49 即  0011 0001
~ 二进制的补运算符是一元的,并有“翻转”位的效果。 (~a ) =  -61 即 1100 0011以2的补码形式由于带符号二进制数。
<< 二进位向左移位运算符。左操作数的值左移由右操作数指定的位数。 a << 2 = 240 即 1111 0000
>> 二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。 a >> 2 = 15 即 0000 1111

三、流程控制

(1)if...else:

>>> if x < 0:
...      x = 0
...      print('Negative number')
... elif x == 0:
...      print('Zero')
... elif x == 1:
...      print('Single')
... else:
...      print('More')
... 

if语句可以使用在一个单语句中,实现三元运算符,基本形式:<表达式1> if <条件> else <表达式2>

print('Negative number') if a > b else print('o no')

 

(2)for 语句:

1、for语句的结构:
  Python语言中的for语句与其他高级程序设计语言有很大的不同,其他高级语言for语句要用循环控制变量来控制循环。Python中for语句是通过循环遍历某一序列对象(字符串、列表、元组等)来构建循环,循环结束的条件就是对象被遍历完成。
  for语句的形式如下:
  for <循环变量> in <循环对象>:
    <语句1>
  else:
    <语句2>
  else语句中的语句2只有循环正常退出(遍历完所有遍历对象中的值)时执行。
实例:

for num in range(10,20):
    for i in range(2,num):
        if num % i == 0:
            j = num/i
            print("%d等于%d*%d" % (num,i,j))
            break
    else:
        print("%d是一个质数" % num)

2、range()函数

  for语句的循环对象可以是列表、元组以及字符串,可以通过range()函数产生一个迭代值,以完成计数循环。
  range( [start,]  stop [, step])
实例:
>>> for i in range(5):
      print(i)
0
1
2
3
4
>>> for i in range(0,10,3):
      print(i)
0
3
6
9
 
for语句使用range()函数可以构建基于已知循环次数的循环程序,也可以以range()生成的数字作为索引来访问列表、元组、字符串中的值。
  需要注意的是,range() 函数返回的对象表现为它是一个列表,但事实上它并不是,range()函数并不是在调用时一次生成整个序列,而是遍历一次才产生一个值,以减少内存的占用,其本质是一个迭代器。
如:
>>> range(10)
range(0, 10)
>>> type(range(10))
<class 'range'>
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
三、while循环语句    
  for语句以遍历对象的方式构造循环,有时却需要构造一种类似无限循环的程序控制结构或某种不确定运行次数的循环,就需要使用while语句
1、while语句结构:
  while语句的基本形式如下:
       while<条件>:
            <语句1>
       else:
            <语句2>
  与for循环不同的是,while语句只有在测试条件为假时才会停止。
实例:
count = 0
while count < 5:
   print(count, " is  less than 5")
   count = count + 1
else:
   print(count, " is not less than 5")
四、break语句、continue语句、pass语句
  break语句用在while和for循环中,break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
  continue语句用在while和for循环中,continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。 continue 语句跳出本次循环,而break跳出整个循环。
  Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
实例:
for i in range(10):
    if i%2 == 0:
        continue
    print(i)
    if i>=7:
        break
else:
    print("循环结束")
 
1
3
5
7
posted on 2017-01-18 00:13  liml  阅读(160)  评论(0)    收藏  举报