(一)Python概述

(1)python的特点

  • Python是一种面向对象的解释性计算机程序设计语言
  • 具有丰富且抢答的内置库和第三方库
  • 语法简洁灵活
  • 开源,而且夸平台,无论在windows、linux、MAC上均可以使用

(2)Python的应用

Python的应用非常广泛,在以下领域都有着主流地位的应用

  • 数据分析
  • 人工智能
  • 网络爬虫
  • 自动化运维(通常结合python的WEB框架,如django等)

(二)开始使用python

(1)Python解释器下载

使用Python,必须首先安装Python解释器,我们可以从官网下载最新的python解释器。

Python下载地址

(2)python解释器安装

下载python解释器的exe可执行文件之后,双击执行安装即可

附:python3.6.5的下载地址

(3)python的源程序文件

python程序均为以py结尾的文本文件,我们可以使用任何文本编辑器编辑生成这个文件,然后运行,但为了专业起见,推荐使用专业的IDE,建议使用pycharm进行编辑

(4)第一个源程序文件

我们尝试用pycharm编写一个hello world,代码如下

  1. print("Hello World!")

(5)使用注释

使用注释,是编写代码的良好习惯,无论对于自己还是他人日后对代码的维护来讲,都是非常重要的。通过简明扼要的语言,描述代码的实现逻辑和功能,可以使得代码维护的工作变得简单而有效,增强代码的可读性
python中的注释主要分为两种

  • 以#开头的单行注释,例如:
  1. # 这是一个关于打印hello world的简单例子
  2. print("Hello World!")
  • 以’’’或者”””括起来的多行注释,例如:
  1. '''
  2. if-elif是python中条件判断语句,它可以让我们根据条件成立与否来决定执行几个代码块中的哪一个
  3. 不同于C语言,在python中没有switch-case语句,因此必须要通过if-elif来实现类似switch-case的功能
  4. 当然,用于也可以通过自己创建用户自己的类,来实现类似switch-case这样的功能
  5. '''
  6. Subject_a_score=10
  7. Subject_b_score=20
  8. Subject_c_score=30
  9. if Subject_a_score>Subject_b_score:
  10. print("This is a veru good mark")
  11. elif Subject_b_score>Subject_c_score:
  12. print("That's a not good point")
  13. else:
  14. print("A bad grade")

(三)Python中的变量

(1)变量的命名规则

python中的变量命名规则为:

  • 变量名不能与保留字相同
  • 变量名可以由字母、数字、下划线组成
  • 变量名的第一个字符必须为字母或下划线,不能以数字开头
  • 变量名大小写敏感

(2)强类型与弱类型

变量为在程序运行过程中存储数据的寄存栈,通常根据变量在使用之前是否需要声明,可以将语言分为强类型编程语言和弱类型编程语言。

  • 强类型编程语言在使用变量之前需要显示定义,然后才能使用。例如C语言,以下为C语言的一段变量定义代码:
  1. #include <stdio.h>
  2. main()
  3. {
  4. /*定义了四个整型变量,a,b,c,sum并赋值*/
  5. int a=10,b=11,c=12,sum=0;
  6. sum+=++a+(b++)+(++c);
  7. printf("sum=%d",sum);
  8. }

运行结果为:

  1. sum=35
  • 弱类型编程语言在使用变量之前无需定义,可以直接赋值使用。

Python为弱类型编程语言,例如:

  1. #定义了四个变量a,b,c,sum,但是无需显示指定类型即可直接使用
  2. a=10
  3. b=11
  4. c=12
  5. sum=0
  6. sum+=a+b+c
  7. print("The result is {:d}".format(sum))

上例运行结果为:

  1. The result is 33

(3)python变量类型

Python中的数据类型主要包括:

  • Numbers(数字)

    • int (有符号整数)
    • float(浮点型)
    • complex(附属)
  • Boolean(布尔类型)

    • True
    • False
  • String(字符串)
  • Tuple(元组)
  • List(列表)
  • Dictionary(字典)

python并没有显示指定变量类型,python系统会自动根据用户输入的值进行判断,并将变量设置为对应的类型,查看变量的类型,可以使用type(变量)。
以下为一段关于变量的代码

  1. #整型变量
  2. i1=10
  3. i2=20
  4. #字符串变量
  5. s1='a'
  6. s2="abc"
  7. #复数变量
  8. c1=1+3j
  9. c2=complex(2.5,9.01)
  10. #布尔型变量
  11. boo1=True
  12. boo2=False
  13. #浮点型变量
  14. f1=10.98
  15. f2=3E-2
  16. #元组
  17. t1=("abc","def","kiss")
  18. #列表
  19. l1=[10,1+3j,True]
  20. #字典
  21. d1={"key1":"justice","key2":120,"key3":3+4j,"key4":False}
  22. #打印出变量的值以及对应的类型
  23. print("i1=%d,%s;i2=%d,%s"% (i1,type(i1),i2,type(i2)))
  24. print("s1=%s,%s;s2=%s,%s"% (s1,type(s1),s2,type(s2)))
  25. print("c1=%r,%s;c2=%s,%s"% (c1,type(c1),c2,type(c2)))
  26. print("boo1=%s,%s;boo2=%s,%s" % (boo1,type(boo1),boo2,type(boo2)))
  27. print("f1={0:.3f},{1};f2={2:.3f},{3}".format(f1,type(f1),f2,type(f2)))
  28. print("t1=%s,%s"%(t1,type(t1)))
  29. print("l1=%s,%s"%(l1,type(l1)))
  30. print("d1=%s,%s" % (d1,type(d1)))

运行结果为:

  1. i1=10,<class 'int'>;i2=20,<class 'int'>
  2. s1=a,<class 'str'>;s2=abc,<class 'str'>
  3. c1=(1+3j),<class 'complex'>;c2=(2.5+9.01j),<class 'complex'>
  4. boo1=True,<class 'bool'>;boo2=False,<class 'bool'>
  5. f1=10.980,<class 'float'>;f2=0.030,<class 'float'>
  6. t1=('abc', 'def', 'kiss'),<class 'tuple'>
  7. l1=[10, (1+3j), True],<class 'list'>
  8. d1={'key1': 'justice', 'key2': 120, 'key3': (3+4j), 'key4': False},<class 'dict'>

(4)input与output

1)介绍

  • input()
    input函数用于在程序执行过程中接收用户输入的内容,默认接收的格式为字符串类型

  • print()
    print函数用于在执行过程中输出内容,常用的格式有

  1. print("Your name is %s,and your grade is %d" % (name,grade))

或者

  1. print("Your name is {1}, and your grade is {2:d}".format(name,grade))

2)print输出格式符

格式符 意义
  1. %c | 格式化字符及其ASCII
  2. %s | 格式化字符串
  3. %d | 格式化整数
  4. %u | 格式化无符号整型
  5. %o | 格式化无符号八进制数
  6. %x | 格式化无符号十六进制数
  7. %X | 格式化无符号十六进制数(大写)
  8. %f | 格式化浮点数字,可指定小数点后的精度
  9. %e | 用科学计数法格式化浮点数
  10. %E | 作用同%e,用科学计数法格式化浮点数
  11. %g | %f和%e的简写
  12. %G | %f %E 的简写
  13. %p | 用十六进制数格式化变量的地址
  14. %r | 复数

3)format格式化函数

format格式化函数自2.6开始引入Python,其功能非常强大,使用形式极其灵活。例如:

  1. 按默认顺序输出显示a_name="Tommy" b_name="Jerry" print("Both {} and {} are at school".format(a_name,b_name))

显示结果:``` Both Tommy and Jerry are at school

  1. 2. 按指定位置输出显示

a_name=”Tommy” b_name=”Jerry” print(“Both {1} and {0} are at school”.format(a_name,b_name))

  1. 显示结果:

Both Jerry and Tommy are at school

  1. 3.按变量名称

print(“Both {a_name} and {b_name} are at school”.format(a_name=”Tommy”,b_name=”Jerry”))

  1. 显示结果:

Tommy and Jerry are at school

  1. 4. 按列表索引设置
  1. subjects = ["Maths", "Chinese", "English", "Physics"]
  2. print("We have many subjects, for instance: {0[1]},{0[2]} and {0[0]}".format(subjects))
  1. 运行结果:

We have many subjects, for instance: Chinese,English and Maths

  1. 5. 按字典的key设置

students={ “name”:”James”, “subjects”:{ “Maths”:110, “Chinese”:105, “English”:91, “Physics”:98 } } print(“We would like to show you {name}’s excellent scores:” “-Maths:{subjects[Maths]},Chinese:{subjects[Chinese]},English:{subjects[English]},Physics:{subjects[Physics]}”.format(**students))

  1. 运行结果

We would like to show you James’s excellent scores:-Maths:110,Chinese:105,English:91,Physics:98

  1. 6. 加千分位分隔符

salary=190899872 print(“My monthly incoming is:RMB¥{:,}”.format(salary))

  1. 运行结果

My monthly incoming is:RMB¥190,899,872

  1. 7. 格式控制

a=3.14159265

.2f保留两位小数

print(“a={:.2f}”.format(a))

+.2f保留两位小数,并带符号

print(“a={:+.2f}”.format(a)) print(“a={:.0f}”.format(a))

s=1024

输出九位整数,右对齐,空位靠左以零填充

print(“s={:0>9d}”.format(s))

输出八位整数,左对齐,空位靠右以零填充

print(“s={:0<8d}”.format(s))

输出七位数,空位靠右,以X填充

print(“s={:X<7d}”.format(s))

percent=0.95

以百分比形式输出

print(“percent={:.2%}”.format(percent)) print(“percent={:.0%}”.format(percent))

exponent=65536000

以指数形式输出

print(“exponent={:.2e}”.format(exponent)) print(“exponenet={:.5e}”.format(exponent))

十位宽度,右对齐

print(“s={:10d}”.format(s))

共计十二位宽度,小数三位,右对齐

print(“a={:12.3f}”.format(a))

十位宽度,左对齐

print(“s={:<10d}”.format(s))

共计十二位宽度,小数五位,左对齐

print(“a={:<12.5f}”.format(a))

十位宽度,居中对齐

print(“s={:^10d}”.format(s))

共计十二位宽度,小数五位,居中对齐

print(“a={:^12.5f}”.format(a))

b,o,d,x分别为二进制,八进制,十进制,和十六进制数

di=1024 print(“di={:b}”.format(di)) print(“di={:o}”.format(di)) print(“di={:d}”.format(di)) print(“di={:x}”.format(di)) print(“di={:#x}”.format(di))

如果需要输出{},可以用{{}}转义

print(“{{PI}}的值为{:.2f}”.format(a))

  1. 运行结果为:

a=3.14 a=+3.14 a=3 s=000001024 s=10240000 s=1024XXX percent=95.00% percent=95% exponent=6.55e+07 exponenet=6.55360e+07 s= 1024 a= 3.142 s=1024
a=3.14159
s= 1024
a= 3.14159
di=10000000000 di=2000 di=1024 di=400 di=0x400 {PI}的值为3.14

  1. <a name="0301e30a"></a>
  2. ### (5)Python中的类型转换
  3. Python中不同类型的数据可以实现相互转化,常用的数据类型转化语句主要包括:
  4. - int(x) 将x转为一个整数
  5. - float(x) 将x转换为一个浮点数
  6. - str(x) 将x转换为一个字符串
  7. - eval(str) 将str转化合适的类型,并返回
  8. - tuple(s) 将s转化为一个元组
  9. - list(s) 将序列s转换为一个列表
  10. - chr(x) 将一个整数转换为一个字符
  11. 以下为一个类型转换的例子

tu1=”(1,3,5,7,9)” list1=”[2,4,6,8,10]” dict1=’{“id”:1,”postion”:”engineer”,”age”:38,”seniority”:10}’ print(‘%s,%s,%s’%(type(tu1),type(eval(tu1)),eval(tu1))) print(‘%s,%s,%s’ % (type(list1),type(eval(list1)),eval(list1))) print(‘{},{},{}’.format(type(dict1),type(eval(dict1)),eval(dict1)))

  1. 运行之后的结果为:

,,(1, 3, 5, 7, 9)

,,[2, 4, 6, 8, 10]

,,{‘id’: 1, ‘postion’: ‘engineer’, ‘age’: 38, ‘seniority’: 10}

  1. 另一个例子:

no1=input(“Please input a number with 5 digits:”)

由于input接受的输入值为字符串类型,需要转换为整型后输出,并参与运算

print(“%s,number=%d” % (type(no1),int(no1)))

  1. 运行之后的结果为:

Please input a number with 5 digits:12345

,number=12345

  1. <a name="770922bb"></a>
  2. ## (四)Python中的运算符以及优先级
  3. <a name="91d68c6f"></a>
  4. ### (1)Python中的运算符
  5. - 算数运算符
  6. - ** 幂运算
  7. - * 乘法运算
  8. - \ 除法运算
  9. - % 取模,返回余数
  10. - // 取整,舍去小数部分
  11. - + 加法运算
  12. - - 减法运算
  13. - 比较运算符
  14. - == 是否相等
  15. - != 是否不等
  16. - > 左边是否大于右边
  17. - < 左边是否小于右边
  18. - >= 左边是否大于等于右边
  19. - <= 左边是否小于等于右边
  20. - 逻辑运算符
  21. - and 左右同时成立返回True
  22. - or 左右其中一个成立或同时成立返回True
  23. - not 单目运算符,对右边表达式的逻辑值取反,True变成False,或者False变成True
  24. - 赋值运算符
  25. - = 赋值运算符
  26. - += a+=b相当于a=a+b
  27. - -= a-=b相当于a=a-b
  28. - *= a_=b相当于a=a_b
  29. - /= a/=b相当于a=a/b
  30. - %= a%=b相当于a=a%b
  31. - **= a**=b相当于a=a**b
  32. - //= a//=b相当于a=a//b
  33. -
  34. <a name="9302d22b"></a>
  35. ### (2)python中的运算符优先级
  36. 按从高到底的顺序,Python中运算符的优先级如下(优先级相同,则按从左到右的顺序运算)
  37. - ** 幂运算
  38. - * 乘法运算符 //除法运算符 %取余运算符 ////取整运算符
  39. - +加法运算符 -减法运算符
  40. - < <= > >= == !=等逻辑运算符
  41. - AND OR NOT等逻辑运算符
  42. (3)程序举例

a=1 b=2 c=a/b print(‘%f’ % c)

k=100 l=7 s=k%l print(“k=%f”% s)

m1=1000 m2=258 m3=m1//m2 print(“m3=%f” % m3)

  1. 运行结果为:

0.500000 k=2.000000 m3=3.000000

  1. <a name="4f2e533e"></a>
  2. ## (五)条件控制
  3. <a name="2b96b772"></a>
  4. ### (1)if的一般表达形式
  5. python条件语句是通过一个或多个条件的判断结果来决定执行那个代码块的语句,其一般表达形式如下:

if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3

  1. <a name="36b81678"></a>
  2. ### (2)嵌套的If
  3. 嵌套的if语句,可以把if...elif...else语句放到另外一个if...elif...else结构中,例如:

if condition_1: statement_block_1.1 if condition_1.2: statement_block_1.3 elif condition_1.4: statement_block_1.5 else: statement_block_1.6 elif condition_2: statement_block_2.1 if condition_2.2: statement_block_2.3 elif statement_block_2.4: statement_block_2.5 else: statement_block_2.6 else: statement_blcock_3.1 if condition_3.2: statement_block_3.3 elif condition_3.4: statement_block_3.5 else: statement_block_3.6

  1. <a name="294e7ff2"></a>
  2. ## (六)作业
  3. <a name="05db1e48"></a>
  4. ### (1)要求:
  5. 小象奶茶馆盛大开业了!今天,门店前立出了以下招牌:
  6. 小象奶茶馆售卖宇宙无敌奶茶,奶茶虽好,可不要贪杯哦! 每次限尝鲜一种口味:
  7. 1)原味冰奶茶 3元 2)香蕉冰奶茶 5元 3) 草莓冰奶茶 5元 4)蒟蒻冰奶茶 7元<br />
  8. 5)珍珠冰奶茶 7元
  9. 请您帮助小象奶茶馆的收银小妹设计一款价格结算系统,要求:
  10. 1、顾客可输入1—5来选择奶茶口味,输入其它数字则输出:<br />
  11. 'Woops! 我们只售卖以上五种奶茶哦!新口味敬请期待!'
  12. 2、顾客可输入购买数量,根据奶茶口味和数量计算总价。
  13. 3、顾客可输入是否为本馆会员,会员可以享受9折优惠。
  14. 4、输出顾客购买的详细信息,包括奶茶口味、购买数量、总价。若是会员输出会员价。
  15. <a name="ece07bf4"></a>
  16. ### (2)代码:

import sys price={“原味冰奶茶”:3,”香蕉冰奶茶”:5,”草莓冰奶茶”:5,”蒟蒻冰奶茶”:7,”珍珠冰奶茶”:7}

打印菜单

print(“{:^200} \n”.format(“Menu List”)) print(“{:<200}\n”.format(“我们向您提供以下各种口味的奶茶:”)) print(“{:<200}\n”.format(“1.原味冰奶茶,每杯3元”)) print(“{:<200}\n”.format(“2.香蕉冰奶茶,每杯5元”)) print(“{:<200}\n”.format(“3.草莓冰奶茶,每杯5元”)) print(“{:<200}\n”.format(“4.蒟蒻冰奶茶,每杯7元”)) print(“{:<200}\n”.format(“5.珍珠冰奶茶,每杯7元”)) choice=input(“请输入数字1-5来选择对应的你喜欢的口味(1-5):”) key_list=[“1”,”2”,”3”,”4”,”5”]

对口味选择进行处理,过滤非法输入

if choice not in key_list: print(“Woops! 我们只售卖以上五种奶茶哦!新口味敬请期待!”) sys.exit(0)

输入数量,并过滤非法输入

quantity=input(“请输入你需要的数量(1-10):”) quantity_list=[“1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”10”] if quantity not in quantity_list: print(“数量输入错误,只能输入数字1-10,现在退出系统”) sys.exit(0)

VIP身份确认,并过滤非法输入

VIP=input(“你是VIP顾客吗?(Y/N):”) VIP_list=[“y”,”n”,”Y”,”N”] if VIP not in VIP_list: print(“VIP身份输入错误,只能输入Y或者N,现在退出系统”) sys.exit(0)

VIP折扣

discount=1 identifier=”不是” if VIP in [“Y”,”y”]: discount=0.9 identifier=”是”

根据输入确定对应口味

if choice==”1”: key=”原味冰奶茶” elif choice==”2”: key=”香蕉冰奶茶” elif choice==”3”: key=”草莓冰奶茶” elif choice==”4”: key=”蒟蒻冰奶茶” else: key=”珍珠冰奶茶”

计算总价

total_payment=price[key]int(quantity)discount

打印顾客选择的口味以及应付总价的计算结果

print(“您选择了{:5},单价为{:d}元,数量为{:2d}杯,您{}VIP用户”.format(key,price[key],int(quantity),identifier)) print(“应付总价为:{:<10.2f}元”.format(total_payment))

  1. 运行实例:

我们向您提供以下各种口味的奶茶:

1.原味冰奶茶,每杯3元

2.香蕉冰奶茶,每杯5元

3.草莓冰奶茶,每杯5元

4.蒟蒻冰奶茶,每杯7元

5.珍珠冰奶茶,每杯7元

请输入数字1-5来选择对应的你喜欢的口味(1-5):4 请输入你需要的数量(1-10):10 你是VIP顾客吗?(Y/N):Y 您选择了蒟蒻冰奶茶,单价为7元,数量为10杯,您是VIP用户 应付总价为:63.00 元 ```