码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础(二)变量、流程控制

时间:2016-05-12 01:22:08      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:

一,变量

声明变量:name="Henry"   ##变量名为:name ,变量name的值为"Henry"

变量的作用:昵称,其代指内存里某个地址中保存的内容。

变量的定义规则:

  • 变量名只能是字母、数字或下划线的任意组合。
  • 变量名的第一个字符不能是数字。
  • 特殊关键字不能声明为变量名(例如:‘and‘,‘list‘,‘not‘,‘for‘,‘while‘.........)

为了更清楚的搞清变量在内存中的位置,下面举个例子进行说明:

技术分享

技术分享
 1  >>> x=1
 2  >>> y=x                 
 3  >>> id(x)
 4  10455040
 5  >>> id(y)               ##id()变量是查看你变量的内存地址,
 6  10455040
 7  >>> x=2
 8  >>> id(x)
 9  10455072
10  >>> id(y)
11  10455040
View Code

     导致上述结果的原因是python中在内存中存储的字符串都是以字符数组存储的,因为内存中的字符数组都是连续的,所以字符串一旦修改,重新创建,当发生变化时,会在内存中开辟一块新内存使用。

技术分享
1 如果在python中使用拼接字符串的话,会浪费许多内存。
2  例:
3  
4 hello+world+!!!!
5  这样会先在内存里开辟一个为hello的地址,然后再开辟一个hello +world的地址,最后在开辟一个为!!!的地址,非常浪费内存,所谓的万恶的+号。
View Code

二,输入输出 

       在python2.*和python3使用的模块有所不同,python2.*中使用raw_input和input,python3中只用input了,下面具体介绍一下

技术分享
 1 #在python2.*中
 2 >>> name = raw_input(please input your name:)  
 3 please input your name:henry
 4 >>> print name
 5 henry                                  
 6 
 7 >>> name = input(please input your name:)
 8 please input your name:henry
 9 Traceback (most recent call last):
10   File "<stdin>", line 1, in <module>
11   File "<string>", line 1, in <module>
12 NameError: name henry is not defined
13 
14 >>> name = henry
15 >>> UserName=input(please input your name:)
16 please input your name:name
17 >>> print UserName
18 henry
View Code
技术分享
1 >>> name = raw_input(raw_input:)
2 raw_input:123
3 >>> type(name)
4 <type str>
5 >>> name = input(input:)
6 input:123
7 >>> type(name)
8 <type int>
View Code

  通过上面的代码可以看到,raw_input可以正常输入输出,在用户使用input的时候直接输入字符串是会报错的,因为它会把用户输入当成一个变量处理,将字符串用引号引起来,可以正确赋值,通过第二个例子可以看到raw_input和input的不同。

  在python3中input输入的内容都会按字符串处理。

技术分享
1 >>> name=input(please input your name:)
2 please input your name:test
3 >>> type(name)
4 <class str>
5 >>> name=input(please input your name:)
6 please input your name:123123
7 >>> type(name)
8 <class str>
View Code

  在我们生活中好多网站登录密码都是不可见的,下面介绍一个隐藏用户输入内容的模块(getpass)

技术分享
1 >>> import getpass
2 >>> passwd=getpass.getpass(input passwd:)
3 input passwd:
4 >>> print(passwd)
5 alex3714
View Code

三,流程控制

   1,if...else 条件判断

1 name = input(请输入用户名:)
2 
3 if name == jack:      #这里的‘==‘是两个值对比,不是指内存里相同的对象,如果是is的话必须是内存里的同一块地址,而不是值相等就可以的
4     print(登录成功)
5 else:
6     print(登录失败)

  2,if...elif...elif...else 多分支条件判断

 1 name = input(请输入用户名:)
 2 
 3 if name == jack:
 4     print(普通会员)
 5 elif name == bob:
 6     print(金牌会员)
 7 elif name == henry:
 8     print(钻石会员)
 9 else10     print(非法用户‘)

四,循环    

    1,for循环

下面举两个例子,实验一下:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 name_list=[jack,bob,eric,six]
 5 
 6 for ele in name_list:
 7     if ele == jack:
 8         print(hell0,jack!!)
 9         continue            #continue条件成立退出当前循环,继续下次循环
10     if ele == six:
11         print(hello,six!!!)
12         break              #break条件成立直接退出循环
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 for i in range(3):                                                 #定义循环三次
 5     user_input = raw_input("Your username:")                            #用户输入用户名,密码
 6     passwd = raw_input("Your password:")
 7     if user_input == valid_user and passwd == valid_passwd:
 8         print "Welcome %s login to our system!" % user_input
 9         break
10     elif user_input == guest:
11         print "Welcome %s login our system,but you only haveread-only access,enjoy!"
12         break
13     else:
14         print "invalid username!"
15 else:
16     print "You‘ve retried 3 times,to avoid attack,I will block your IP address.."

   2,while循环

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 Num1=0
 5 Num2=0                           #定义两个计数器
 6 
 7 
 8 while True:
 9     Num1 +=1
10     print(Num1:,Num1)
11     break_flag =False            #在父循环中定义一个跳出标志,如果子循环要父循环一起跳出时,把跳出标志设置成True
12     while True:
13         Num2 +=1
14         if Num2 == 5:
15             break_flag = True      #父循环一起跳出
16             break                      #先跳出第一层
17         print(Num2:,Num2)
18     if break_flag:                     #判断子循环是否已经跳出,然后自己跳出
19        print(exit....)
20        break

 

Python基础(二)变量、流程控制

标签:

原文地址:http://www.cnblogs.com/phennry/p/5086395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!