python基础
python优点
- 强大的可移植性 windows uinx 类unix
- 解释性的编程语言
- 广泛的开发支持 功能模块很多 数据分析 深度学习 人工智能 支持到位
- 胶水语言 有良好的并发处理支持
- 支持多进程多线程(假的)没办法拥有多线程并发
大缺点:
- 执行速度慢 高并发不如java 性能最高
- 开发版本不兼容
- GIL(全局解释器锁)问题 限制并发对多处理器系统支持度不高 并发会受到锁的限制
- 源代码没有加密 明文发布
python虚拟机
- 虚拟机运行环境有限 可以帮助开发隐藏一些底层细节问题
- C java 编译型
- php asp python 解释型部署到运行环境里面就可以执行了
- 编写源代码 字节码pyc 程序执行
- python虚拟机的支持相同 可以任意移植
搭建python开发环境
python.org
文档 pip模块化管理 idle test py运行环境 全部选中
C:\Program Files\Python310\Scripts
pip环境配置成功可以编写python代码了
*.py文件代码
# coding:UTF-8
print("Hello hudie")
print("www.baidu.com")
目前要求文件保存的编码与程序中定义的编码相同 python定义的utf-8(主流)
mysql 是gbk
GBK UNCODE UTF-8 ISO-8859-1
程序基本概念
python注释
后续代码解析方便
- 单行注释 #
- 多行注释 ‘’’ 多行注释’‘’’
所有注释法人内容不会被编译器解释
单引号和多引号都可以执行 --python的特殊之处 - 注释是首要的完成任务
标识符和关键字
字母数字下划线 (不能用数字开头 不能出现关键字)
非法标识符 110Hello class(关键字)
2.X和3X关键字有差别
变量和常量
可以使用分号 对于一行的判断为截止
第三章数据类型划分
python里面没有数值传递
对象引用传递
Python的数据类型
- 整数 字符串 列表 元组 字典 日期 全部为引用传递数据类型
数值型
整数 小数
# coding:UTF-8
num = None #描述的是一个空
- 定义变量
# coding:UTF-8
num_a = 10
num_b =4
print(num_a/num_b)
<class 'NoneType'>
-----------
<class 'int'>
-----------
<class 'float'>
num1=10E5
num2=30.3E6
num1*num2
<class 'float'>
type()函数 可以知道变量的类型
None是无法确定类型的
科学计数法是可以使用的
浮点型 3.X将长度取消了 任何大的数都可以
复数
实部和虚部,
定义复数:
# coding:UTF-8
num1 = complex(10,2) #实部10虚部2
print(num1)
输出结果
(10+2j)
- num.real
- num.imag
- num.conjugate() #获取共轭复数
布尔
0才表示为false -10也显示为true
字符串
引号 单引号和多引号都可以 一样表示
python没有字符的概念
通过type函数返回的str 引号返回的类型是一致的
python源代码使用的是单引号 所以最好习惯使用单引号
C语言没有双引号的概念
现代语言的使用都是双引号 老师建议使用双引号
千万记住需要使用统一 不同的引号可以嵌套
# coding:UTF-8
msg="molekeji 'hahahah ' "
python
使用三引号“”” “””可以执行预编译 保留格式 续航符\
使用+号可以字符的连接
转义字符
键盘数据输入
input()
实际上在所有的编程语言里面 输入信息都是字符串
int(str)格式转换函数
num_a = float(input("请输入第一个数字:"))
num_b = float(input("请输入第二个数字:"))
result = num_a + num_b ;
print( num_a + " + " + num_b + "=" + result )
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Is44ar81-1662458543737)(http://122.112.166.255/HuPhoto/20220906/af8c73b201acabe848a2d169574bc8bb.png)]
数值型和str 不能直接链接 必须全部转换成str
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OaYtZcAz-1662458543737)(evernotecid://52A48768-587E-4C8A-9C79-6BDF8705DC6C/appyinxiangcom/30485129/ENResource/p92)]
格式化输出
- 混合输出 必须要使用str 麻烦
- %c %e %s %f %o %x
print("hahahah %d ,wozai %s ")
age = 18
work = "光大"
salary =9013904308489458
print("A年龄%d,准备在%s,年薪%e " % (age,work,salary))
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XjbqnV3a-1662458543737)(evernotecid://52A48768-587E-4C8A-9C79-6BDF8705DC6C/appyinxiangcom/30485129/ENResource/p93)]
默认的使用10位输出
为了减少变量输入
利用vars()函数自动填充
name ='胡蝶'
age = 18
score = 97.8
print("姓名: %(name)s ,age: %(age)d,score: %(score)5.2f" %vars())
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hMCJCh7u-1662458543737)(evernotecid://52A48768-587E-4C8A-9C79-6BDF8705DC6C/appyinxiangcom/30485129/ENResource/p94)]
使用print函数会换行
end参数自定义完结符
print(":xiaoming :" ,end="、")
print(":xiaoli :" ,end="\n")
print(":xiaoci :" ,end="----------")
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-adYqR05s-1662458543738)(evernotecid://52A48768-587E-4C8A-9C79-6BDF8705DC6C/appyinxiangcom/30485129/ENResource/p95)]
运算符
运算符简介
-
-
-
- /
-
-
- 简化代码编写 不要写太复杂的运算式
数学运算符
只要传统除法的数据运算,都是浮点型 答案是浮点型
//两个除号是整数除法只保留商
print(10/4)
print(10//4)
乘法 str *3 输出3次
关系运算符
==
y小写字母>大写字母Y
关系操作 肯定是 大小关系的比较操作
返回的判断结果 是布尔类型
==
不同的整数表示的不同 小写的数值 对于大写的数值 python ord()函数转换
# coding:UTF-8
print("数据比较结果: %s"% ("yootk" == "yootk"))
print("数据比较结果: %s"% ("yootk" >= "Yootk"))
print("y code: %d , Ycode; %d" %(ord("y"),ord("Y")) )
大写字母范围 A~Z 65 -90
小写字母范围a~z 97 -122
0 ~9 48~57
ASCII 码目录
Python的特殊之处:可以使用多个关系运算符
age = 20
result = 18 <= age <= 30
print(result)
一个条件直接解决
很简洁 方便
逻辑运算符
与 或 非
在Python里面
# coding:UTF-8
age = 20
name = "s"
result = age == 20 and name == "s"
print(result)
# coding:UTF-8
age = 18
name = "s"
result = age == 20 or name == "s"
print(result)
# coding:UTF-8
age = 18
name = "s"
result = not age == 20
print(result)
位运算符
高级语言对于位运算需求不是很大
bin() 二进制
oct() 八进制
int() 十进制
hex() 十六进制
& 位与
| 位或
^ 位异或
~ 反码计算
<< 左移
>> 右移
# coding:UTF-8
num_a = 13
'''
1101 0111
0101
'''
num_b =7
print("jieguo: %s" % (num_a & num_b))
身份运算符
Python 自己提供的运算符 进行功能完全相等的判断
Python里面是引用类型 id()获取内存地址 唯一一个与底层有交互的函数
# coding:UTF-8
num_a = 2
num_b =1+1
num_c = 4 // 2
print(id(num_a))
print(id(num_b))
print(id(num_c))
python就是说数据相同的地址是一样的
# coding:UTF-8
num_int = 10
num_float =10.0
print(id(num_int))
print(id(num_float))
print(num_int ==num_float )
默认 整型转换成float类型
- is
- is not
分支判断机构
程序逻辑
在程序开发过程层中 数据处理
分支机构
断言
断言是assert
利用assert设置断言判断表达式
断言错误
需要为断言设置错误信息
无论什么时候千万不要在python语句前面空格。
断言是不收到程序逻辑控制之外的问题 在世纪的开发之中慎用
循环结构
while循环
while循环
while 循环结束判断
循环语句
修改循环结束条件while else 循环
while 循环结束判断
循环语句
修改循环结束条件
else:
循环语句执行完毕后执行的代码
#coding:UTF-8
sum = 0
num = 1
while num <= 100:
sum += num
num +=1
print(sum)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUIypUcR-1662458543739)(http://122.112.166.255/HuPhoto/20220906/.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8j1llZJ-1662458543739)(evernotecid://52A48768-587E-4C8A-9C79-6BDF8705DC6C/appyinxiangcom/30485129/ENResource/p108)]
#coding:UTF-8
sum = 0
num = 1
while num <= 100:
sum += num
num +=1
else:
print("哈哈哈哈哈哈哈")
print("数字累加计算结果: %d,当前的数值: %d " % (sum ,num))
print(sum)
实现1000以内的斐波那契数列
# coding:UTF-8
num_a = 0
num_b = 1
while num_b <= 1000 :
print(num_b , end = ",")
num_a , num_b = num_b ,num_a + num_b