LPL竞猜 > LOL竞猜 > 其代指内存里某个地址中保存的内容

LOL竞猜

其代指内存里某个地址中保存的内容

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

一,变量

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

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

变量的定义规则:

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

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

图片 1

图片 2 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中在内存中存储的字符串都是以字符数组存储的,因为内存中的字符数组都是连续的,所以字符串一旦修改,重新创建,当发生变化时,会在内存中开辟一块新内存使用。

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

二,输入输出 

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

图片 4 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 图片 51 >>> 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输入的内容都会按字符串处理。

图片 61 >>> 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)

图片 71 >>> 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 else:
10     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

 

一,变量 声明变量: name="Henry" ##变量名为:name ,变量name的值为"Henry" 变量的作用:昵称,其代指...