Python的重要性
python就业方向
Python的历史
python创造于1989年,荷兰人吉多.范罗苏姆
现在是Python3版本
09
Python的特点
1)跨平台
2)解释型语言
3)交互式
4)面向对象:一切皆对象
5)具有一个强大的标准库
6)Python社区提供了大量的第三方模块
7)
缺点:
1)运行速度慢
2)国内市场较小
3)中文资料匮乏
这是一个在电脑中已经安装的模块的文档
题目:
设置pyCharm自己的模板
File-setting-Editor-File and Code Template-python Script
模板
${PROJECT_NAME} - 当前Project名称;
${NAME} - 在创建文件的对话框中指定的文件名;
${USER} - 当前用户名;
${DATE} - 当前系统日期;
${TIME} - 当前系统时间;
${YEAR} - 年;
${MONTH} - 月;
${DAY} - 日;
${HOUR} - 小时;
${MINUTE} - 分钟;
${PRODUCT_NAME} - 创建文件的IDE名称;
${MONTH_NAME_SHORT} - 英文月份缩写, 如: Jan, Feb, etc;
${MONTH_NAME_FULL} - 英文月份全称, 如: January, February, etc;
模板如下:
#author:dq
#project:${PROJECT_NAME}
#date:${YEAR}年${MONTH}月${DAY}日
解释器与解释器
1)
计算机只能识别机器语言
所以需要把其他语言翻译为机器语言
2)
编译:代码执行前将源代码一次性转换成目标代码的过程
类似英语中的全文翻译。
执行编译过程的程序叫做编译器。
特点:速度快,跨平台性差
解释:将源代码逐条转换成目标代码同时逐条运行的过程。(在代码执行的同时一边执行一边编译)
类似英语中的同声传译
特点:速度慢,跨平台性好
Python的基础知识
1.python的源程序
1)python源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做python的开发
2)文件扩展名.py
2.python代码中容易出现的常见错误
1)不能把多条语句写在一行,因为每行代码只否则完成一个动作
2)缩进错误,每行代码前面不要增加空格
4个空格代表一个缩进
3.Python2默认不支持中文,python3支持中文
因为ASCII码只包含256个字符,不支持中文
4.在终端中直接使用Python
cmd中输入python再回车
使用exit()或Ctrl+D退出Python模式
IDE
集成开发环境,集成了开发软件需要的所有工具
如:PyCharm,Idea
恢复PyCharm的初始设置
1.恢复PyCharm的初始设置(Linux)
在linux中列出所有文件:ls -la
计算机的使用方式
1.接口
2.用户界面
TUI文本交互界面
GUI图形化交互界面
命令行
1.任何计算机的操作系统都包含有命令行(Windows,linux,MacOS)
2.命令行有多个不同的名字
Shell,终端,Dos
3.Windows下的命令行:
通过cd xxx来切换磁盘
cd…回到初始磁盘
4.常用的Dos命令
1)dir查看当前目录下的所有文件(夹)
如:dir C:\Users\pc
2)cd xx进入指定目录
如:cd Desktop
.代表当前目录
…代表上一级目录
cd…回到初始磁盘,回到上一级目录
3)小技巧
方向键上下,查看历史的命令记录
tab键自动补全命令
4)md创建一个目录
如:
md dqtoday
5)rd删除一个目录
如:
rd d1
直接删除
6)del删除一个文件
如:
del d1
会进行询问是否删除
7)cls清除屏幕
如:cls
8)直接输入文件名称.文件类型打开文件
如:attendance.xlsx
命令的语法:
命令 【参数】【选项】
环境变量
1.环境变量定义
2.环境变量界面:
上面:用户环境变量,只对当前用户起作用
下面:系统环境变量,对所有用户起作用
建议只对用户环境变量修改
3.path环境变量
系统寻找文件:
1)当前目录下
2)path环境变量的路径中
多个路径之间使用;隔开
文本和字符集
1.文本:
纯文本(保存文字):如:txt
富文本(包括文本以外):如:word文档
纯文本在计算机底层也会转换为二进制保存
2.编码与解码:
编码:字符–>二进制
解码:二进制–>字符(人看得懂的)
3.常见的字符集:
utf-8(统一编码,汉字占三个字节)、Big5(繁体中文)、GBK(国标扩,汉字占两个字节,简体中文)
UTF-8:使用1-5个字节
UTF-16:使用2-4个字节
UTF-32:使用4个字节
计算机语言
机器语言:二级制
汇编语言(符号语言):通过符号代替机器码:
- 汇编:符号–>机器码
- 反汇编:机器码–>符号(看得懂)
高级语言:
java,c…
编程的几个常用概念
1.表达式:类似于数学公式,不对程序产生一定的影响
7+4
2.语句:完成某种功能,会对程序产生一定的影响
print()
a=10
3.程序:由语句和表达式构成
a=10
print(str(a+100))
4.函数:
函数:是语句,用来完成特定的功能
分类:
内置函数(python解释器自带的)
自定义函数(程序员自己创建的函数)
python内置函数(在python手册中可以查看)
Python规范
1.4个空格(Tab)代表一个缩进
2.导入包
import random导入一个
form random import *导入相关的所有
3.空格:
在运算符两侧各加一个空格,逗号后面加一个空格
4.语句过长,使用\续行符或()
如:
3+5
\6+6
或
(3+5
9+0)
5。使用小驼峰或大驼峰
aMM
MaaLpp
Python基础语法
1.定义变量
变量名=变量值
a=78
a的数据类型随着变量值而变化
2.变量的命名规则:
以字母和下划线开头,包含数字,字母,下划线,中文,不能使用关键字
题目:
HTML5不区分大小写,其他的java,C,C++,Python,JavaScript都区分大小写
3.数据类型
1)数字:
int(整型)
long(长整型)
float(浮点型)
complex(复数):实部+虚部=1+8i
2)布尔类型:
Ture
False
3)字符串
0–n-1
-n-(-1)
4)集合类型:
List(列表):数组
Tuple(元组):内容不能改变
Dictionary(字典):相当于java的Map,键值对
通过type查看数据类型
a='xx'
#输出<class 'str'>
print(type(a))
3.查看关键字
import keyword
print(keyword.kwlist)
代码:
#查看关键字
import keyword
print(keyword.kwlist,sep=' ')
#输出
#['False', 'None', 'True', '__peg_parser__',
# 'and', 'as', 'assert', 'async', 'await',
# 'break', 'class', 'continue', 'def', 'del',
# 'elif', 'else', 'except', 'finally', 'for',
# 'from', 'global', 'if', 'import', 'in', 'is',
# 'lambda', 'nonlocal', 'not', 'or', 'pass',
# 'raise', 'return', 'try', 'while', 'with', 'yield']
4.print()输出函数
print(’xx‘,‘yy’,sep=’ ‘,end=’\n’)
使用’‘或“”都可以
使用,隔开
sep=‘x’每个值之间使用’x’进行间隔
end=’\n’最后换行
#使用sep=‘**’分隔每个字符串,end=';'最后输出;
print('1234', '2345678','dfhgjuk',sep='**', end=';' )
m,n=1,3
print(m,n,sep=' ')
5.input()输入函数
age=input(‘defrgt’)
‘wdefrt’是对用户的提示,将用户的输入值赋给age,是字符串
注意:得到的是字符串,要进行运算需要int(a),转换为整型等
题目:
1)
2)
60*0.4=24.0
默认为浮点数
6.不同进制的表示
支持:
0x十六进制
0o八进制
内置函数:
bin()转二进制
oct()转八进制
hex()转16进制
print(bin(223),oct(23),hex(123),sep=' ',end='.')
7.数据类型转换
int()转整型
float()转浮点型
str()转字符串
bool()转布尔型:
有具体数值的是True,如1,90,‘2345’
0,’’,“”,(),[],{}等为空的为False
chr()返回整数对应的ASCII码
ord()返回ASCII码对应的整数
#数据类型转换
a='2345'
print(str(int(a)+1)+str(2345)+str(float(88))+str(bool("")))
#ASCII码与整数的转换
#输出C 1
print(chr(67),chr(0x31),chr(0o11),sep=' ',end='\n')
#输出 97 112
print(ord('a'),ord('p'),sep=' ',end='\n')
8.算术运算符
1)
%取模:求余数
2%3==2…0
所以余数为0
**幂运算:
x**3==x^3
//求商
9/4=2…1
取2,去掉余数
2)两个整数相除,得到浮点数
所以如果要输出整数的话,使用int(a)
加法运算符:只能连接两个字符串+,不能整数+字符串(×)
乘法运算符:字符串*整数==将字符串重复多少次
print('spam' + 'spamspam')
print('spam' * 3)#spamspamspam
题目:
1/2除法,默认为浮点数
1//2求商
4)复合赋值运算符
x+=2:x=x+2
x%=2:求x/2的余数
x//=2:求x/2的商
x**=2:x=x^2
#复合赋值运算符
a=4//2#2求商
print(a,end='\n')
a**=2#求a^2求幂4
print(a,end='\n')
题目:
x%y求余数
x**y=x^y
5)传递赋值
等号连接:a=b=c=‘2345’
同步赋值:m,n=3,7
组包:多个变量赋给同一个值(元组)
x=‘hello’,‘wer’,‘234’
print(x)
拆包:一个变量赋给多个变量(对应的关系)
str=‘1234’
a,b,c,d=str
代码:
#等号连接
x=y=z='989'
print(x,y,z,sep=' ',end='\n')
#同步赋值
m,n=1,3
print(m,n,sep=' ',end='\n')
#组包
d='345','345','iop'
#输出('345', '345', 'iop')
print(d,end='\n')
#拆包
a,b,c=d
print(a,b,c,sep=' ',end='\n')
6)可变长度赋值,使用*
o,*p,q=9,23,43,54,0
o=9
*p=23,43,54(可变长度)
q=0
代码:
#可变赋值长度
a,*p,b='d','b',3,45,45,'l'
#输出d l
print(a,b,sep=' ',end='\n')
#输出b 3 45 45
print(*p,end='\n')
#输出<class 'str'>
print(type(a))
#但不能使用type(*p),报错,*p里面存储了多种数据类型
7)比较运算符
1.
数字与字符串比较,永远是False
如:
a=‘a’
a==97:False
#比较字符串
a='97'
#输出 False
print(a==97)
常用:>=,<=,!=
可以直接18.6 <= r <= 24.9
#1
#if 18.6 <= r <= 24.9:效果等同
#2
if (r >= 18.6 and r <= 24.9):
#3
if 24.9>=r>=18.6
题目:
ASCII码
小写字母比大写字母大32
8)与或非
1.
and 与
or 或
not 非
2.
短路与:and,第一个为False,后面就不再计算了,直接为false
短路或:or,第一个为True,后面就不再计算了,直接为true
# 短路与
#输出no
if (1 == 8 and 1 == 1):print('yes')
else:print('no')#短路或
#输出ok
if(1==1 or 1==6):print('ok')
else:print('mm')
逻辑运算的结果:
and所有都是Ture,取最后一个值;不然就输出遇到的第一个为False的值
or所有都是False,取最后一个值;不然就输出遇到的第一个为True的值
# 与或非
# and所有都为True,输出最后一个89
print(1 and '3' and 'ui' and '89')
# or所有都为False,输出最后一个{}
print('' or [] or {})# and输出遇到的第一个false:0
print('l' and '78' and 0 and {})
# or输出遇到的第一个true:88
print('' or {} or '88')
与或非案例:
# 2_1
# 写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句,并且打印对应的结果。b = input('请输入数字')
i = int(b)
if (i % 3 == 0 or i % 7 == 0) and (not (i % 3 == 0 and i % 7 == 0)):print('yes', end='\n')
else:print('no', end='\n')# 2_2
# 同时被3和7整除,即为21的倍数;除以21不等于0即不能同时被3和7整除
b = input('请输入数字')
i = int(b)
if i % 3 == 0 or i % 7 == 0:if i % 21 != 0:print('yes', end='\n')else:print('no', end='\n')
else:print('no', end='\n')
9)位运算
1.
使用 “&”、 “~”、 “|” 和 “^” 等操作符进行计算
按位与&:两个1为1,其他为0
按位或|:有1为1,两个0为0
按位取反~:1变0,0变1
按位异或^:相同为0,不同为1
2.
按位取反
~n=-(n+1),比如:~3=-4
3.位运算实例
使用&0xFF取得最后n位16进制数
#位运算符
#题目:0xF0384E作为RGB颜色,分别取出R=F0;G=38;B=4E
#计算机中使用的是二进制,所以移位后的数是二进制的要使用hex转换为16进制
#RGB:R右移4*4=16位,G右移2*4=8
color=0xF0384E
#hex(color>>16)=0xf0
#hex(color>>8)=0xf038 要使用位运算符:&0xFF来取得最后的两位16进制数
#B=0xF0384E使用&0xFF取得最后两位16进制数
R=color>>16
G=color>>8
B=color&0xFF
print(hex(R),hex(G&0xFF),hex(B),sep=' ',end='\n')#&0xFF来取得最后的两位16进制数
#&0xFFFF取得最后四位16进制数
#&0xFFFFFF取得最后六位16进制数
print(hex(color&0xFF),hex(color&0xFFFF),hex(color&0xFFFFFF),sep=' ',end='\n')
注释
单行注释#
多行注释开始和结尾使用三个’‘’或“ ” “
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
round函数
返回浮点数的四舍五入值
round(float浮点数,n要保留的几位小数)
n=null:整数
n=0或1:一位小数
n为负数:一位小数
-n:在整数部分从右到左,依次变为0
#round() 方法返回浮点数x的四舍五入值
# 当参数n不存在时,round()函数的输出为整数。
#
# 当参数n存在时,即使为0,round()函数的输出也会是一个浮点数。
#
# 此外,n的值可以是负数,表示在整数位部分四舍五入,但结果仍是浮点数。
print(round(23.99,1))#24.0
print(round(23.0099,3))#23.01
print(round(23.00000055,7))#23.0000005
print(round(23.00000055))#23--整数
print(round(23.00000055,0))#23.0
print(round(23.00000055,-2))#0.0
print(round(23.00000055,-1))#20.0
题目:
round(0.3,1):保留一位小数,四舍五入:0.3
秒转换为时分秒形式
常规:
时:d/3600
分:d%3600/60
秒:d%3600%60
因为Python中两个整数相除为浮点数,所以输出时使用int()
# 4_1
# 假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以XX时XX分XX秒的方式表示出来。d = 15678
# 秒->小时:秒/60/60
h = d / 3600
# 秒->分钟:秒%3600-->余数为不够的小时/60-->秒--》分钟
m = (d % 3600) / 60
# 剩余的秒数:(d%3600)%60余数不够的秒数
s = (d % 3600) % 60
print(int(h), '时', int(m), '分', int(s), '秒', sep='')# 4_2
# python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
d = 15678
# m=d//60 s=d%60
m, s = divmod(d, 60)
# h=m//60 m=m%60
h, m = divmod(m, 60)
print("%02d:%02d:%02d" % (h, m, s))# 4_3
# 使用strftime()与gmtime()函数把秒转换为时分秒
from time import strftime
from time import gmtime# 输出 time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=4, tm_min=21, tm_sec=18, tm_wday=3, tm_yday=1, tm_isdst=0)print(gmtime(15678))
# 格式化输出
print(strftime("%H:%M:%S", gmtime(15678)))