`
onlynima
  • 浏览: 5342 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

从零开始学Python

 
阅读更多

第四章:条件循环语句等

1.printimport

     print(1,2)

     输出1 2不会输出元组

     from somemodule import somefunction as a

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

2.序列解包

     x,y,z=1,2,3

     输出:x=1y=2z=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---->判断xy是否为同一个对象(在内存中)==判断值是否相等.

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)

         ifxx in string:

         strings[index]=[censored]

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

   翻转和排序迭代reversedsorted

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

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]

 execeval

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-->

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics