您的位置:首页 > 编程语言 > Python开发

从零开始学Python

2015-08-04 10:58 615 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Keifor/article/details/84735923

第四章:条件循环语句等

1.print和import

     print(1,2)

     输出1 2不会输出元组

     from somemodule import somefunction as a

     导入某个包中的函数,并为这个函数起名(可以import*,或者多个函数).

2.序列解包

     x,y,z=1,2,3

     输出:x=1,y=2,z=3

     对于元组:values=(1,2,3)也同样适用,另外等号左边的项的个数不足时会抛出异常,可以x,y*=values,这样y=(2,3)

3.链式赋值

   x=y=z

4.增量赋值

  x+=1(不能写成x=x+1)

  乘法和除法于此类似

5.布尔变量

bool(‘’)

输出:False

bool(‘hl’)

输出:True

6.条件执行和if语句

     num1=int(input('please input number'))

if num1==0:

print('you win!')

#pass

elif num1<0:

print('xiao le ')

#pass

elif num1>0:#可以将else if简写成 elif

print('da le ')

#pass

else:

print('please input zhengque de shuzi')

#pass

要注意缩进,并且判断数字的时候要转换成int类型.

x is y---->判断x,y是否为同一个对象(在内存中),==判断值是否相等.

in 成员资格运算,比较字符或者字符串是否在字符串中

字符串<字符串 返回True或者False 按照字母顺序比较

7.布尔运算符

 and  or  not 等(具有短路逻辑);

8.断言

在错误出现的时候让程序崩溃

age=-1

assert 0<age<100,’年龄有误’

运行时程序会崩溃,并报错:‘年龄有误’

9.while循环:

while x<=10:

   print(x)

   x+=1

10.for循环:

    words=[‘hello’,’zq’,’i’,’miss’,’you’]

for i in words:

   print(i)

用for循环可以实现迭代,另一种实现迭代的是range()函数;

for i in range(1,100,2):

   print(i)

range函数可以有三个参数,起始位置,结束位置和步长,xrang也与他类似,但是xrange每次创建一个数,有时会更加高效.

11.循环遍历字典元素

   d={‘x’:1,’y’:2,’z’:3}

   for i in d:

   print(d[i])

12.迭代工具

   并行迭代zip

      names=[‘a’,’b’,’c’,’d’,’e’]

      values=[‘1’,’2’,’3’,’4’,’5’]

      for name,value in zip(names,values)

      print(name,value)

      特别地,如果names或者values长度不足,则会结束.

  编号迭代enumerate

      for index,string in enumerate(strings)

         if’xx’ in string:

         strings[index]=’[censored]’

      这个函数可以在提供索引的地方迭代索引。

   翻转和排序迭代reversed和sorted

       作用于序列或者可迭代对象上,不是原地修改,而是返回新的版本。

13.跳出循环

break

continue  

以上这些和C语言,java等类似就不一一赘述

14.列表式推到

[x*x for x in range(10)]

输出:[0-9的平方]

可以在其中添加for或者if等其他语句

15.三人行

    pass:

        程序什么事情都不做,这种情况必须用pass.因为空代码块是非法的.

 

          f num1==0:

      print('you win!')

            pass

          elif num1<0:

      print('xiao le ')

del:

 

 

 

 

删除的时候只是删除名称,并不会将内存中的列表删除

x=[1,2,3]

y=x

del x

输出y:[1,2,3]

 exec和eval:

exec是用来执行一个字符串的,eval是求一个字符串的值的

 

exec(‘print(‘hello’)’)

输出:hello

为了安全起见,要为exec定义一个作用域,让这个函数只在这个作用域有效,不会影响其他的代码:

scope={}

exec(‘print(‘hello’)’) in scope

输出:hello

#下面的代码可以正常执行

 

 

eval(‘1+2’)

输出:3

eval也有作用域,并且有两个,全局的作用域(必须是字典),局部的作用域(任何形式的映射)

 

>>> scope={}

>>> scope['x']=2

>>> scope['y']=3

>>> eval('x*y',scope)

6

 

同理的二者调用的作用域也能互相使用

<!--EndFragment-->

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: