python开发基础之语法基础
一、知识点
(一)python介绍
1.Python被设计成一种高可读性的语言,它大量地使用了英语单词作为关键字,不像其他语言使用标点符号构成复杂的语法结构。
2.Pyton是支持面向对象的,支持在对象中进行代码封装,是一种面向对象的语言。
3.Python是一种解释性语言,不用编译源程序。
4.Python可跨平台,应用范围广可扩展,非常适合初学者,深入研究编程也是不错的选择。
(二)python安装
1.下载https://www.python.org/downloads/windows/,选择自己需要的版本安装。
2.windows下安装完成后,运行cmd,输入python,如果能进入交互环境 ,代表安装成功。
(三)基本语法
1.变量命名规则:数字,字母,下划线, 任意组合,数字不能开头,python 的关键字不能用,变量名尽量有意义。
2.注释
#单行注释 #注释可以是英文和中文不能使用拼音 """ 第一种方式 多行注释 多行注释 """ ''' 第2种方式 多行注释 多行注释 '''
3.PEP 8是一种编码规范,是一系列关于如何让Python代码更加具有可读性的编码建议。
4.python的内置类型:分为可变类型和不可变类型。
- 可变类型:列表、集合、字典
- 不可变类型:字符串、元组、数字
5.格式化输出:
name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与括号 后面的 变量 关联起来 print(info)
6.运算符:
-
算数运算
以下假设变量:a=10,b=20
-
比较运算
以下假设变量:a=10,b=20
-
赋值运算
以下假设变量:a=10,b=20
-
逻辑运算
7.if条件语句
# 单分支
if 条件: 满足条件执行代码 else: if条件不满足就走这段
if 条件: 满足条件执行代码 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 else: 上面所有的条件不满足就走这段
8.while循环语句
while 条件: 执行代码...
9.IDE开发工具推荐用pycharm
下载地址:https://www.jetbrains.com/pycharm/download
二、练习题
1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型?
编译型语言: 使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。 特点: 在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件. 执行方式: 源代码 ———> 编译(一次编译) ———>目标代码———>执行(多次执行)———>输出 解释型语言: 使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。 特点: 解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。 执行方式: 源代码 ———> 解释器(每次执行都需要解释)———>输出 编译型: C c++, c# 解释型: python PHP ruby, java
2.执行 Python 脚本的两种方式是什么?
1../run.py.shell直接调用python脚本
2.python run.py 调用python 解释器来调用python脚本
3.Pyhton 单行注释和多行注释分别用什么?
单行注释使用 # 多行注释使用""" """或''' '''
4.布尔值分别有什么?
布尔值分别有:True 和False
5.声明变量注意事项有那些?
模块名,包名 :小写字母, 单词之间用_分割。 类名:首字母大写。 全局变量: 大写字母, 单词之间用户_分割。 普通变量: 小写字母, 单词之间用户_分割。 函数: 小写字母, 单词之间用户_分割。 实例变量: 以_开头,其他和普通变量一样 。 私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。 专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。
6.如何查看变量在内存中的地址?
id()
7.写如下代码:
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 15:04 # @Author : lurkerzhang # @File : 7_1.py # @Descript: 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name = input("用户名:") pwd = input("密码:") if name == "seven" and pwd == "123": print("登陆成功!") else: print("登陆失败!")
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 15:26 # @Author : lurkerzhang # @File : 7_2.py # @Descript:实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次 count = 3 while count > 0: count -= 1 name = input("用户名:") pwd = input("密码:") if name == "seven" and pwd == "123": print("登陆成功!") break else: print("登陆失败!")
- 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 15:42 # @Author : lurkerzhang # @File : 7_3.py # @Descript: 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次 user_name = ['seven', 'alex'] password = '123' count = 3 while count > 0: count -= 1 name = input('用户名:') pwd = input('密码:') if name in user_name and pwd == password: print('登陆成功!') break else: print('登陆失败!')
8.按要求完成如下代码:
- 使用while循环实现输出2-3+4-5+6...+100 的和
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 15:53 # @Author : lurkerzhang # @File : 8_1.py # @Descript: 使用while循环实现输出2-3+4-5+6...+100 的和 n = 2 sum = 0 while n <= 100: if n % 2 == 0: sum += n else: sum -= n n += 1 print('2-3+4-5+6...+100=%d' % sum)
- 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 16:03 # @Author : lurkerzhang # @File : 8_2.py # @Descript: 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 n = 0 while n < 12: n += 1 if n in [6, 10]: continue elif n == 12: print(n) else: print(n, end=',')
- 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 16:17 # @Author : lurkerzhang # @File : 8_3.py # @Descript: 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束 n = 100 while n >= -1: if n >= 50: print(n) else: print(49 - n) n -= 1
- 使用 while 循环实现输出 1-100 内的所有奇数
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 23:16 # @Author : lurkerzhang # @File : 8_4.py # @Descript: 使用 while 循环实现输出 1-100 内的所有奇数 n = 1 while n <= 100: if n % 2 != 0: print(n) n += 1
- 使用 while 循环实现输出 1-100 内的所有偶数
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 23:20 # @Author : lurkerzhang # @File : 8_5.py # @Descript: 使用 while 循环实现输出 1-100 内的所有偶数 n = 1 while n <= 100: if n % 2 == 0: print(n) n += 1
9.现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
n2是n1的引用,它们在内存中的地址是一样的,n1的值发生变化,n2的值也同样发生变化。
10.制作趣味模板程序(编程题):
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
如:敬爱可爱的xxx,最喜欢在xxx地方干xxx。
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 23:31 # @Author : lurkerzhang # @File : 10.py # @Descript: 制作趣味模板程序(编程题): # 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示 # 如:敬爱可爱的xxx,最喜欢在xxx地方xxx。 name = input("姓名:") place = input("地点:") hobby = input("爱好:") message = "敬爱可爱的%s,最喜欢在%s地方干%s" % (name, place, hobby) print(message)
11.输入一年份,判断该年份是否是闰年并输出结果。(编程题)
注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 23:38 # @Author : lurkerzhang # @File : 11.py # @Descript: 输入一年份,判断该年份是否是闰年并输出结果。(编程题) # 注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。 year = int(input("输入年份:")) isleap = False if year % 400 == 0: isleap = True elif year % 4 == 0 and year % 100 != 0: isleap = True if isleap: print("%d是润年。" % year) else: print("%d是平年。" % year)
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/14 23:56 # @Author : lurkerzhang # @File : 12.py # @Descript: 假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番? n = 1 while True: if 1.0325**n >= 2: print(n) break n += 1
13.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
# @Time : 2018/11/15 0:05 # @Author : lurkerzhang # @File : 13.py # @Descript: 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? n = 1 height = 100 distance = 0 while n <= 10: distance += height height = height * 0.5 distance += height n += 1 print("它在第10次落地时,共经过%f米?第10次反弹%f米。" % (distance-height, height))