python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
执行Python程序:
对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用Python3.0输出"Hello World!": 实例(Python 3.0):
#!/usr/bin/python print(Hello, World!)
python的两种编写方式
交互式编程
交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。 linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Window 上在安装 Python 时已经已经安装了默认的交互式编程客户端,提示窗口如下:
在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果: >>>print("hello, python!")
在 Python 3.6版本中,以上实例输出结果如下: hello, python!
脚本式编程
通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。 让我们写一个简单的 Python 脚本程序。所有 Python 文件将以 .py 为扩展名。将以下的源代码拷贝至 test.py 文件中。 print("Hello, Python!") 这里,假设你已经设置了 Python 解释器 PATH 变量。使用以下命令运行程序:
$ python test.py
输出结果: Hello, Python!
变量
什么是变量
#变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
为什么要有变量
#程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
#比如:
英雄的等级为1,打怪升级(变)为10
僵尸的存活状态True,被植物打死了,于是变为False
人的名字为egon,也可以修改为Egon
如何定义变量(图解)
#变量名(相当于门牌号,指向值所在的空间),等号,变量值
name='Egon'
sex='male'
age=18
level=10
变量的定义规范
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
#3. 关键字不能声明为变量名['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']
Python 保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。 所有 Python 的关键字只包含小写字母。
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
定义方式:
#驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
#下划线(推荐使用)
age_of_oldboy = 56
number_of_students = 80
定义变量名不好的方式
#1. 变量名为中文、拼音
#2. 变量名过长
#3. 变量名词不达意
定义变量会有:id,type,value
#1 等号比较的是value,
#2 is比较的是id #强调:
#1. id相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Egon:18'
>>> y='Info Egon:18'
>>> id(x)
4376607152
>>> id(y)
4376607408
>>>
>>> x == y
True
>>> x is y
False
古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证,成功后,我们再将取款金额输入/告诉他
骄傲的现代人,会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制
#在python3中
input:用户输入任何值,都存成字符串类型 #在python2中
input:用户输入什么类型,就存成什么类型
raw_input:等于python3的input
注释
随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有些代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。 另外,你以后在工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,这产会挨打的。所以为了避免这种尴尬的事情发生,一定要增加你代码的可读性。
代码注释分单行和多行注释, 单行注释用#
,多行注释可以用三对双引号""" """
代码注释的原则:
#1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
#2. 注释可以用中文或英文,但不要用拼音
文件头
#!/usr/bin/env python
# -*- coding: utf-8 -*-
基本数据类型
#int整型
>>> age=20
>>> print(type(age))
<type 'int'>
用于标识:年龄,等级,身份证号,qq号,个数
#浮点型
>>> salary=3.1
>>> type(salary)
<type 'float'>
用于标识:工资,身高,体重 #字符串
#在python中,加了引号的字符就是字符串类型,python并没有字符类型。 用于标识:描述性的内容,如姓名,性别,国籍,种族
>>> name="yinxin"
>>> type(name)
<type 'str'>
#列表
#在[]内用逗号分隔,可以存放n个任意类型的值
>>> name_list=["yinxin","yinxin1","yinxin2"]
>>> type(name_list)
<type 'list'>
取出第一个名字: >>> name_list[0]
'yinxin' #字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
>>> dict={"name":"yinxin","age":"20"}
>>> type(dict) #查询dict类型
<type 'dict'>
>>> dict['name'] #取name
'yinxin'
>>> dict['age'] #取age
'20'
#布尔
Python的布尔类型有两个值:True和False(注意大小写要区分)
逻辑运算:
1、与:and(两个都为True,结果才为True)
2、或:or(只要一个为True,则为True)
3、非:not(把True变为False,把False变为True)
Python 条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(null)值为true, 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
else:
执行语句…… #实例
age=input("age:") age=int(age)
if age > 20: print(age)
else:
print(" age < 20 ")
Python 循环语句
Python提供了for循环和while循环:
循环类型 描述
while 循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环 重复执行语句
嵌套循环 你可以在while循环体中嵌套for循环
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出整个循环
continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
#for实例
#!/usr/bin/python
# -*- coding: UTF-8 -*- for letter in 'Python': # 第一个实例
print '当前字母 :', letter
#输出 当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
#while实例
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
name="seven"
password=""
count=1
while True:
if count > 3:
print("密码输入错误次数达到三次,无法进行登陆")
break
else:
input_name = input("name:")
input_pwd = input("password:")
if input_name == name and input_pwd == password:
print("login successfully")
break
else:
print("login fail")
count += 1
练习
基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
dic={
'egon1':{'password':'','count':0},
'egon2':{'password':'','count':0},
'egon3':{'password':'','count':0}, } while True:
name=input('username>>: ') if not name in dic:
print('用户不存在')
continue
if dic[name]['count'] > 2:
print('尝试次数过多,锁定')
continue password=input('password>>: ') if password == dic[name]['password']:
print('登录成功')
break
else:
print('用户名或密码错误')
dic[name]['count']+=1