Python 的入门基础介绍(安装,基础语法和三大流程)
学习 Python 所需的工具
学习一款语言,那么就需要书写语言的编辑器,以及可以将语言传递给计算机识别的解释器。
-
python 解释器:翻译为机器语言并执行;
python 的官网https://www.python.org/
下载环境。 -
pycharm 编辑器:是一款功能强大的 Python 编辑器,具有跨平台性。
PyCharm 的下载地址为http://www.jetbrains.com/pycharm/download/#section=windows
背景设置:
点击file 中的setting
字体大小和间距设置:
注:windows 安装好解释器之后,用 win +r 打开 docs 命令窗口输入 python 来判断是否安装成功;linux 操作系统默认是集成了 python 解释器的。
1. 什么是编程语言
程序可以看作对一系列动作的执行过程的描述。
计算机程序执行的整个过程是怎样的呢?
计算机按照我们的命令去做,我们说“立正”,它不能“稍息”,这样在我们的支配下完成预定工作。
计算机按照某种顺序完成系列指令
把复杂的计算分解,然后重新设计成一系列计算机可以按指定顺序执行的简单的指令,这个过程就叫做编程。
汇编语言是用一些简短的英文单词来代替机器语言中的一个个二进制指令。
通过编程语言,程序员才能告知计算机如何完成一个复杂的计算。
机器语言,只由0和1组成。
总结: 计算机和计算机编程语言不断发展,编程仍然是最初的概念:把复杂的计算分解,然后重新设计成一系列计算机可以按指定顺序执行的简单指令。
2. 基础语法
2.1 认识变量
变量是内存中的一块区域。对象赋值实际上是对象的引用。a=10
变量的命名: 变量名由字母,数字,下划线组成, 不能以数字开头。
hello = 100, hello_world = 100, count2 =100, 1count=10(x)
Python中,变量定义时不需要指定类型的,当用变量的时候,必须要给这个变量赋值;
2.2 认识运算符
整数型:int; 布尔型:bool(true、false); 浮点数型:float(小数);复数:complex
- 整型数
打开docs 环境,输入cmd,然后输入python进入Python环境;
整数一般是10进制的,但是Python也支持八进制或十六进制来表示:
十进制转换成二进制bin(10)
十进制转换成八进制oct(10)
十进制转换成十六进制hex(10)
- 浮点数
3. 布尔值
type()查看变量类型
- 常见运算符
1)算数运算符:+,-,*,**, /, %, //
**次方,%代表取余 //是整除
2)赋值运算符:=, +=, -=, /=, *=, %=
=是赋值的意思;+=是num=1,num+=1和 num=num+1相等
3)关系运算符: >, >=, <, <=, !=, ==
==是判断是否相等,返回是bool类型的值
4)逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not
全真则真,一假则假; 全假则假,一真则真; 真是假,假是真
2.3 数据的输入和输出
- 用户输入(input)
默认输入的数据并不是整形,后面如果需要用到数据就需要对其转换使其成为需要的类型。
int()将输入的值转换为整型,float()将输入的值转换为浮点型,bool()将输入的值转换为布尔值
-
输出(print)
%表示占位符; %s表示字符串; %d表示整型数; %f表示浮点数,%.2f表示小数点后2位; %%表示字符%
显示小数点后几位%.2f
表示保留小数点后两位:
format格式输出:
>>> print(f"姓名:{name}, 年龄:{age}, 分数:{score}")
姓名:westos, 年龄:14, 分数:99.9997
但是保留小数可以用上述的方法。
**练习1:**编写程序,录入学生的姓名和三门科目的百分制成绩,计算该学生的总分和平均成绩。
输入姓名: 张三
输入语文成绩:
输入数学成绩:
输入英语成绩:
学生张三的总分为:,平均分为:
name = input("Please input student name:")
Chinese = int(input("Chinese score:"))
English = int(input("English score:"))
Math = int(input("Math score:"))
count = Chinese + Math + English
average = count/3
print(f'{name} total score is: {count},average score is:{average}')
执行结果如下所示:
**练习2:**温度转换器:编写一个程序,将温度从华氏温度转换为摄氏温度;输入华氏温度,输出对应摄氏温度。
fahrenheit = float(input("Please input fahrenheit:"))
celsius = (fahrenheit - 32)/1.8
print('%.2f fahrenheit transfrom to celsius is %.2f' %(fahrenheit,celsius))
2.4 常用的函数
1). 标准类型函数(cmp, str和 type): 可以用于所有的标准类型。
2). 转换工厂函数(int, long, float, bool和 complex)
3). 功能函数(abs, divmod, pow和 round)
4). 进制转换函数(bin,hex,oct)
5). ASCII 转换函数(chr,ord)
abs求绝对值,pow求次方;round保留小数点后几位。
常用模块的导入:math ,random
3. 三大流程控制语句
3.1 顺序
按顺序去执行步骤,是最基本的代码执行规则,不做过多的解释。
3.2 分支
-
单分支
if 条件: 满足条件做什么
-
双分支
if 条件: 满足条件做什么 else: 不满足条件做什么
-
三元运算符(双份支的简化版)
result = 满足条件的内容 if 条件 else 不满足条件的内容
-
多分支
if 条件1: 满足条件1 执行的内容 elif 条件2: 满足条件2 执行的内容 else: 不满足条件执行的内容
示例1:判断年龄是否大于18岁
在 python 中 input 接收的是字符串,如果接受整型数,需要通过int转成整型数。
需求:如果年龄大于18岁,输出成年,否则输出未成年 注意点:冒号和缩进是python 的语法规范。
age = int(input("年龄:"))
if age > 18:
print("成年")
else:
print("未成年")
示例2: 分支语句之三元运算符
三元运算符: age > 18? "成年":"未成年"
age = int(input("年龄:"))
print("成年" if age > 18 else "未成年")
示例三: 分支流程控制的多分支
需求:分数score,
1). 90=<score<=100, grade=A
2). 80=<score<90, grade=B
3). score<80, grade=C
score = int(input('成绩:'))
if 90<=score<=100:
print("等级是A")
elif 80<=score<90: #elif满足第二个条件做什么操作
print("等级是B")
elif 0<=score<80:
print("等级是C")
else:
print("成绩输入错误")
练习:
需求:
1.用户输入用户名和密码
2.判断用户名和密码是否正确(用户名=admin,密码=westos)
3.如果正确:“用户admin登录成功"
4.如果不正确:”用户admin 登录失败"
name = input("please input your name:")
password = input("please input your password:")
if name=="admin" and password=="westos":
print(f"用户 {name} login successfully")
else:
print(f"{name} login failure")
3.3 循环
-
while 循环
while 条件: 满足条件的语句
需求:输出数字从0-20.
""" #表示注释
count=0,while 0<=20,print(0) count+=1
count=1, while 1<=20,print(1) count+=1
...
count=19 while 19<=20 print(19) count+=1
count=20 while 20<=20, print(20) count +=1
count 21 while 21 <=20(x)
"""
count = 0
while count <=20:
print(count)
#count = count + 1 #简化为下面的
count +=1
-
while 死循环
循环一直执行下去,即while后的条件如果一直成立的话,将会一直重复后面的操作,但代码中可通过别的方式退出,所以死循环有独特的用处。while True: 一直循环执行的动作
在前面判断用户时,是没有统计次数的,并且不论是否登录等成都会退出。如果此时档登陆不成功时,继续输入用户名和密码,直至登录成功才会退出。
while True:
name = input("用户名:")
password = input("密码:")
if name == "admin" and password == "westos":
print(f"用户{name}登录成功") #{}中的内容表示变量
exit() #退出程序
else:
print(f"{name}登录失败")
用户登录成功进入系统,登录失败,继续登录,并且统计登录次数。
try_count = 1 #用户登录系统的次数
while True:
print(f'用户第{try_count}此登录系统')
try_count += 1 #用户尝试登录的次数+1
name = input("用户名:")
password = input("密码:")
if name == "admin" and password == "westos":
print(f"用户{name}登录成功")
exit() #登录成功退出程序
else:
print(f"{name}登录失败")
练习:
需求:输出0-100之间的偶数
"""
num = 0
while num <=100:
if num % 2 == 0:
print(num)
num +=1
"""
num = 0
while num <= 100:
print(num)
num += 2
-
for 循环
for num in range(n): 循环的语句
range用法:
range(start,end) 指的是从start开始到end-1结束;
range(num) 指的是从0开始到num-1 结束;
range(start,end,dtep)指的是从start开始到end-1结束,步长为step。
需求:输出数字0-20
""" #代码思路
range(0,21)生成0-20的数值
for num in range(0,21) #循环
- num=0
- num=1
...
- num=20
"""
for num in range(0,21):
print(num)
练习:
需求:输出0-100之间的偶数
for num in range(0,101,2):
print(num)
对于python 中的任何函数可以在Python Console 中用 help(rang)查看。
for 循环访问字符串
for item in 'westos;:
循环的语句
string = 'westos'
# item ='w','e','s','t'...
for item in string:
print("---",item)
-
while循环和else结合
while 条件表达式: 满足条件执行的内容 else: 不满足条件执行的内容
for i in range(2):
循环时执行的语句
else:
没有for 可以循环时执行的语句
try_count = 0
while try_count < 3:
try_count += 1
print(f"第{try_count}次开始尝试登录")
else:
print("尝试登录次数大于3次")
3.4 跳出循环
break 语句用来终止循环语句,循环条件没有False条件或者序列还没有被完全递归完,也会停止执行循环语句;
continue 跳出当前循环的剩余语句,然后继续进行下一轮循环;
exit(): 退出整个程序。
1)break:
count = 0
while count <= 10:
count += 1
print(count)
if count == 5:
break #遇到 break ,循环结束
**注:**debug的调试,点中左侧,然后鼠标右键选择debug,来调试代码。
2)continue 语句:
count = 0
while count <= 10:
count += 1
print(count)
if count == 5:
continue #遇到continue,跳出本次循环
print('hello')
**练习1:**嵌套循环
九九乘法表:
"""
i j
1 1
2 1,2
3 1,2,3
...
9 1,2...9
"""
# 如何让print 换行,print('xxx',end' ')
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}", end=' ')
# i=1.i=2.i=3,开始换行
print()
练习2: 闰年判断器
随机生成一个1900-2000之间的年份,判断给定年份是否为闰年。
import random
year = random.randint(1900,2000)
if year%4 ==0 and year%100 !=0 or year%400 ==0:
print(f"年份{year}年是闰年。")
else:
print(f"年份{year}年不是闰年。")
练习3: 防黑客暴力攻击用户登录系统
需求: 根据输入用户名和密码,判断用户名和密码是否正确。
为了防止暴力破解,登陆仅有三次机会,如果超过三次机会,报错提示。
数据库信息: name=‘root’ passwd=‘westos’
try_count = 1 #用户登录系统的次数
while try_count <= 3:
print(f'用户第{try_count}此登录系统')
try_count += 1 #用户尝试登录的次数+1
name = input("用户名:")
password = input("密码:")
if name == "admin" and password == "westos":
print(f"用户{name}登录成功")
exit() #退出程序
else:
print(f"{name}登录失败")
else:
print("尝试次数大于3次")
彩虹棒棒糖:
import turtle #导入turtle画图工具
"""
R:red,G:green,B:blue
RGB颜色表示法:
red: (255,0,0)
green: ()
blue: ()
"""
# 1. 生生渐变色的列表
# 从红色到黄色
colors1 = [(255,g,0) for g in range(0,256)]
# 从黄色到绿色
colors2 = [(r,255,0) for r in range(255,-1,-1)]
# 从绿色到青色
colors3 = [(0,255,b) for b in range(0,256)]
# 从青色到蓝色
colors4 = [(0,g,255) for g in range(255,-1,-1)]
# 从蓝色到紫色
colors5 = [(r,0,255) for r in range(0,256)]
# 从紫色到红色
colors6 = [(255,0,g) for g in range(255,-1,-1)]
colors = colors1 + colors2 + colors3 + colors4 + colors5 + colors6
n = len(colors)
# 2. 基于 turtle生成彩虹糖(可根据自己的喜好调整彩虹棒棒糖的颜色)
# 画笔的大小: 20px
turtle.pensize(20)
# 画笔的速度,0代表最快的速度
turtle.speed(0)
# 设置turtle指定颜色的模式,255代表rgb模式
turtle.colormode(255)
# 循环1000次不断画图,画图的同时不断调正圆的半径
for i in range(1000):
color = colors[i % n]
turtle.color(color)
turtle.circle(i // 3,5)
# 如果颜色超出给定的范围,和总颜色个数取余,从头开始获取颜色。
turtle.done()