第一章 Python的环境搭建
- 首先我们应在python的官网下载python安装包
点击这里>> 官网
- 安装时注意勾选添加环境变量,不然就只能安装后手动添加了
- 安装完成后进入cmd,输入python看到进入交互模式则表示安装完成
- 在cmd里面编程是不方便的,我们还需要IDE,下载pycharm
点击这里>>Pycharm
向下滚动页面,找到社区版,除非你有高级的需求,否则不需要使用到专业版
Pycharm是很棒的pythonIDE,安装后选择自己的运行环境和项目路径后,创建新的文件就可以开始愉快的写代码啦😊
第二章 基本数据类型
2.1 变量和标识符
什么是变量?
变量(variable):在程序运行时,可以发生变化的量,被称为变量
python如何定义变量?
python是弱数据类型语言,变量类型不固定,值是什么类型,变量就会自动变成什么类型。
而强数据类型的语言,例如Java,当定义数据类型后,不允许存储其他数据类型。
a = 10
如👆所示,这样就可以轻松的定义一个变量。
但在实际使用中最好是遵守如下的命名规范:
1> 变量名称只能由有效字符(大小写字母,数字,下划线)组成(name+ 报错语法错误)
2> 不能以数字开头
3> 不能是关键字或者是保留字
4> 变量命名尽量有意义(name age sex )
5> 小驼峰法 userAddress(除了第一个单词,其他单词首字母大写)
6> 下划线法(官方推荐)
标识符的命名规范
所谓的标识符就是对变量、常量、函数、类等对象起的名字。
首先必须说明的是,Python语言在任何场景都严格区分大小写!
Python对于标识符的命名有如下规定:
-
第一个字符必须是字母表中的字母或下划线’_’
-
标识符的其他的部分由字母、数字和下划线组成
-
标识符对大小写敏感
python的常量
python并没有定义常量的方式,常量是通过变量来模拟的
常量的命名规范:所有字母大写的单词是常量,这是一种约定俗成的方式而非强制约束。
python的关键字
关键字:在编程语言中有特殊含义的单词
保留字:目前版本还没使用,但后面可能会用的单词
2.2 数据类型
基本数据类型
int #整数
float #浮点
bool #布尔
True False
str #字符串
ord() #用来获取单个字符的编码(ASCII)
chr() #用来把编码转换成对应字符
转义 | 字符 描述 |
---|---|
(\在行尾时) | 续行符 |
(\\) | 反斜杠 |
(\') | 单引号 |
(\") | 双引号 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\r | 回车 |
\f | 换页 |
\yyy | 以\数字0开头后跟三位八进制数 |
\xyy | 以\字母x开头后跟至少2位十六进制数 |
数据类型转换
# 使用这种方式可以转换数据类型,
num = int(input())
2.3 常见的运算符
算术运算符
运算符 | 含义 | 备注 |
---|---|---|
+ | 加法运算 | |
- | 减法运算 | |
* | 乘法运算 | |
/ | 除法运算 | 在c++ C Java等强数据类型语言是整除运算 |
% | 取余运算 | 求模或者求余数 |
// | 整除运算 | 整除(只要整数部分) |
** | 幂次方运算 |
关系运算符
运算符 | 含义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等 |
注意: 一般情况下关系运算符的值是一个布尔值,只有True和False
逻辑运算符
运算符 | 含义 | 备注 |
---|---|---|
and | 且 | 多个条件必须同时满足,则结果是true |
or | 或 | 多个条件,至少一个为真,则为真 |
not | 非 | 取反 ,一般会和In关键字一起使用,表示意义相反 |
赋值运算符
运算符 | 含义 | 备注 |
---|---|---|
= | 等于 | 赋值 |
+= | 加等 | a += 值 等价于 a = a + 值 |
-= | 减等 | |
*= | 乘等 | |
/= | 除等 | |
**= | 幂次方等 | |
//= | 整除等 |
注意: python中没有自加自减运算
身份运算符
运算符 | 含义 | 备注 |
---|---|---|
is | 判断两个标识符是不是引用自一个对象 | x is y,类似id(x)==id(y),如果引用的是同一个对象则返回True,否则返回False |
is not | 判断两个标识符是不是引用自不同对象 | x is not y |
注意: is与比较运算符“==” 的区别,两者有根本上的区别:
is用于判断两个变量的引用是否为同一个对象,而“==”用于判断变量引用的对象的值是否相等!
简单的说: ==是用来对变量的值进行判断的,而is判断的是内存地址。
成员运算符
in 与 not in是Python独有的运算符(全部都是小写字母),用于判断对象是否某个集合的元素之一
位运算符
a = 0011 1100
b = 0000 1101
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 001
三目运算符
在python中的格式为:为真时的结果 if 判定条件 else 为假时的结果
例如:
a = input()
b = input()
max = a if a > b else b
print(max)
# 此代码,当满足a > b 时,输出if前面的值也就是a,不满足则输出else后面的值,也就是b
示例
1. 设计一个程序,判断输入的数字是不是质数
prime_num = int(input("请输入一个整数:")) #获取用户输入内容
if prime_num <= 1: #这个条件语句检查用户输入是否小于等于1;是:输出不是质数;否:执行后面的语句
print(f"{
prime_num}不是质数")
else:
for i in range(2, int(prime_num**0.5)+1): #如果输入大于1进入else。开始for循环,从2开始逐个遍历直到prime_num的平方根
if prime_num % i == 0: #检查prime_num是否能被i整除;
print(f"{
prime_num}不是质数") #有能被整除的则打印不是质数
break #使用break跳出循环
else:
print(f"{
prime_num}是一个质数") #若循环正常结束则没有可以整除的,打印是一个质数
结果展示:
2. 使用turtle画一个五环
import turtle as t #导入turtle库取别名为t,方便书写
color = ["blue","black","red","yellow","green"] #定义一个列表来存储五环的五种颜色
coordinate = [(-220, 50), (0, 50),(220, 50), (-110, -85), (110, -85)] #定义列表来存储五环的圆心坐标
t.pensize(10) #设置画笔的粗细
for i in range(5): #for循环开始画圆画5个圆就循环5次
t.color(color[i]) #根据i的值读取color列表的值获取颜色
t.penup() #把笔抬起来
t.goto(coordinate[i]) #根据i的值读取coordinate列表的值获取坐标
t.pendown() #把笔放下
t.circle(100) #开始画圆半径100
t.done() #停止画笔,但不关闭窗口
如下图所示:这是绘制完成的样子
3. 使用循环显示四种模式,使用嵌套循环在四个独立的程序中显示下面四种模式。
print("模式A")
for i in range(1, 7): #外部循环,控制行数,表示6行输出
for num in range(1, i + 1): #内部循环,控制每行打印的数字,从1开始到i结束
print(num, end=" ") #循环一次打印一次num的值,并在num后面有个空格
print() #换行,循环结束,开始从头循环
print("模式B")
for i in range(6, 0, -1): #外部循环,控制行数,表示6行输出,i的值将从6-1倒序
for num in range(1, i + 1): #内部循环,控制数字,第一行从1开始i结束
print(num, end=" ") #循环一次打印一次num的值,并在num后面有个空格
print() #换行,循环结束,开始从头循环
print("模式C")
for i in range(1,7):
for space in range(6-i): #内部循环,控制空格个数,从0开始到6-i-1
print(" ",end=" ")
for num in range(i,0,-1): #内部循环,控制输出数字,从i开始到1结束,每次递减1
print(num,end=" ")
print()
print("模式D")
for i in range(6, 0, -1):
for space in range(6 - i):
print(" ", end=" ")
for num in range(1, i + 1): #内部循环,1开始1结束,默认每次+1
print(num, end=" ")
print()
执行结果展示:
F:\pythonwork0912\venv\Scripts\python.exe F:\pythonwork0912\for-demoABCD.py
模式A
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
模式B
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
模式C
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
模式D
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
Process finished with exit code 0
4. 在金字塔模式中显示数字,编写一个嵌套for循环来显示下面的输出。
for i in range(0, 8):
for space in range(1, 9 - i): # 控制左侧倒三角空白区域
print("\t",end="")
for num_lift in range(0, i + 1): # 控制左侧数字
print(2 ** num_lift, end="\t")
for num_right in range(i, 0, -1): # 控制右侧数字
print(2 ** (num_right - 1), end="\t")
print()
结果为:
5. 实现求1-100之间的质数
prime_nums = [] #定义一个空列表
for prime_num in range(0,101): #遍历0-100
if prime_num <=1: #过滤2以下的
TF_prime = False
else