声明变量
#-*- coding:utf-8 -*- name ='Tom'
上述代码声明了一个变量,变量名为: name,变量name的值为:"Tom"
变量定义的规则:
-
-
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
-
变量的赋值
name='Tom' name1=name print(name,name1) name='lily' print(name,name1)
这时name1的值是多少?
局部变量: 就是在函数内部定义的变量
不同的函数:可以定义相同的名字的局部变量,但是各用各的,相互之间不会产生影响
局部变量的作用:为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
def test1(): a=100 def test2(): print("a=%d"%a) test1() #调用test1() test2() #结果是打印a 因为变量a没定义 所以出现错误
除了字符串和整数不可以在函数里边改
列表,字典,集合可以在函数里改
names=['Jim','Tom','Rain'] def change_name(): names[0]='王者荣耀' print('--函数里面--',names) change_name() print(names) 输出: --函数里面-- ['王者荣耀', 'Tom', 'Rain'] ['王者荣耀', 'Tom', 'Rain']
全局变量:在函数外边定义,在任何函数里边都可以使用
a=100 #全局变量a def test1(): print('a=%d'%a) #函数中如果没有定义变量 它会去全局中寻找该变量 def test2(): print('a=%d'%a) test1() test2()
局部变量和全局变量的区别
def get_wendu(): wendu=33 return wendu def print_wendu(wendu): print("温度是%d"%wendu) result=get_wendu() print_wendu(result) #如果一个函数有返回值,但是没有在调用函数之前用个变量保存的话,那么没有任何作用
使用global声明全局变量
wendu=0 #定义一个全局变量,wendu def get_wendu(): global wendu #使用global用来对声明一个全局变量
wendu=33 def print_wendu(): print("温度是%d"%wendu) get_wendu() print_wendu()
注释
当行注释:# 被注释内容
多行注释:""" 被注释内容 """
用户输入
# -*-coding:utf-8 -*- name=raw_input('请输入你的名字:') #raw_input仅适用于python2.7版本 age=input('请输入你的年龄:') print("%s的年龄是%s:"%(name,age))
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
# -*- coding:utf-8 -*- # Author:sunhao import getpass #导入getpass模块 _username='sunhao' _password='abc123' username = input("usename:") password = getpass.getpass("password:") if _username==username and password == _password: print("Welcome user {name} login...".format(name=_username)) else: print("Invalid username or password")
用户交互程序三种表示方法
# -*- coding:utf-8 -*- # Author:sunhao name=input('username:') age=int(input('age:')) job=input('job:') salary=int(input('salary:')) info=''' --------info of %s---------- Name:%s Age:%d Job:%s Salary:%d '''%(name,name,age,job,salary) #第一种表示方法 info2=''' --------info of {_name}---------- Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} '''.format(_name=name, _age=age, _job=job, _salary=salary) #第二种表示方法 .format() info3=''' --------info of {0}---------- Name:{0} Age:{1} Job:{2} Salary:{3} '''.format(name, age, job, salary) #第三种表示方法 print(info1) print(info2)
print(info3)
#三种显示结果是一样的