标签:
声明变量:name="Henry" ##变量名为:name ,变量name的值为"Henry"
变量的作用:昵称,其代指内存里某个地址中保存的内容。
变量的定义规则:
为了更清楚的搞清变量在内存中的位置,下面举个例子进行说明:
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
导致上述结果的原因是python中在内存中存储的字符串都是以字符数组存储的,因为内存中的字符数组都是连续的,所以字符串一旦修改,重新创建,当发生变化时,会在内存中开辟一块新内存使用。
1 如果在python中使用拼接字符串的话,会浪费许多内存。 2 例: 3 4 ‘hello‘+‘world‘+‘!!!!‘ 5 这样会先在内存里开辟一个为‘hello‘的地址,然后再开辟一个‘hello‘ +‘world‘的地址,最后在开辟一个为‘!!!‘的地址,非常浪费内存,所谓的万恶的‘+‘号。
在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
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‘>
通过上面的代码可以看到,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‘>
在我们生活中好多网站登录密码都是不可见的,下面介绍一个隐藏用户输入内容的模块(getpass)
1 >>> import getpass 2 >>> passwd=getpass.getpass(‘input passwd:‘) 3 input passwd: 4 >>> print(passwd) 5 alex3714
1 name = input(‘请输入用户名:‘)
2
3 if name == ‘jack‘: #这里的‘==‘是两个值对比,不是指内存里相同的对象,如果是is的话必须是内存里的同一块地址,而不是值相等就可以的
4 print(‘登录成功‘)
5 else:
6 print(‘登录失败‘)
1 name = input(‘请输入用户名:‘)
2
3 if name == ‘jack‘:
4 print(‘普通会员‘)
5 elif name == ‘bob‘:
6 print(‘金牌会员‘)
7 elif name == ‘henry‘:
8 print(‘钻石会员‘)
9 else:
10 print(‘非法用户‘)
下面举两个例子,实验一下:
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.."
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
标签:
原文地址:http://www.cnblogs.com/phennry/p/5086395.html