计算机原理基础

前提: 简述 cpu 内存 硬盘 操作系统 应用程序
cpu: 计算机的运算核心和控制核心,就好像人类的'大脑'。
内存: 负责数据与cpu直接数据交流处理,将临时数据和应用程序加载到内存,然后交由cpu处理。4g,8g,16g,32g造价高,断电即消失
硬盘: 磁盘(d盘,e盘)长久的存储数据:文件,应用程序。片二等数据,断电不消失
操作系统: 控制调度 硬件与软件资源额计算机程序,它是计算机最大的软件

一、Python的由来

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

  最新的TIOBE排行榜,Python重回前三

  

  

  由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!

  Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。

1.为什么是Python而不是其他语言?

C 和 Python、Java、C#等C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行Python 和 C  Python这门语言是由C开发而来对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.对于速度:Python的运行速度相较与C,绝逼是慢了Python 和 Java、C#等对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

2.Python的种类

CpythonPython的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
JyhtonPython的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
IronPythonPython的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
PyPy(特殊)Python实现的Python,将Python的字节码字节码再编译成机器码。
RubyPython、Brython …

3.python的语言分类

解释型:将代码一行一行的解释成二进制,然后逐行执行。缺点:执行效率低。优点:开发效率高,可以跨平台。代表语言:python。
编译型:将代码全部一次性编译成二进制,然后在执行。缺点:开发效率低,不能跨平台。优点:执行效率高。代表语言:C。

4.python的优缺点

优点:1,优美清新简单,入门容易,如果深入研究,可以写出非常非常复杂的程序。2,开发效率高。3,高级语言。4,可移植性。5,可嵌入性。6,可拓展性。缺点:1,运行速度慢。2,源码不能加密。3,由于有GIL锁的存在,不能利用多线程。

5.python2和python3的区别

源码上的区别:pyhton2x:源码不规范。源码重复率较高。源码冗余。python3x:源码识重新整合,符合优美清晰简单的原则。编码方式的区别:python3x:编码方式默认是utf-8,可以支持中文,英文。python2x:编码方式默认是ASCII,只包含英文字母,数字,特殊字符如果想显示中文:在首行加上# -*- encoding:utf-8 -*-。

二、Python环境

  1.安装Python

  windows

1.下载安装包:官网:https://www.python.org/downloads/  选择对应版本的Python下载即可   淘宝镜像:https://npm.taobao.org/mirrors/python/
2.安装路径:默认C盘路径也可以选择。比如D:/python3
3.配置环境变量不过要记得配置环境变量【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

  linux

    无序安装,系统自带

  2.更新Python

   windows:卸载重装即可

  3.安装第三方包

    pip install package_name  或者 在pycharm中settings中安装

三、Python入门

  1.第一个python程序

#coding=utf-8
#-*- coding:utd-8 -*-
print("hello haha")
#以下代码用来打印一个信息
# 单行注释# 多行注释
'''
print("hello world")
print("hello world")
print("hello world")
print("hello world")
'''

 第一个Python程序注意点:运行方式有两种:(1)在编辑器中编辑好py文件,保存。在命令行下到当前目录执行python 文件名.py(2)在有python编译环境的编辑器里直接点解运行即可。如eclipse,pycharm。

  Python内部执行流程

2.

  2.pyc文件

    执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

    ps:代码经过编译

    可以产生字节码;字节码通过反编译也可以得到代码。

  3.变量的定义和使用 

  变量的定义

  name = zhangyafei  #定义了一个变量,这个变量的名字叫做name,它里面存储了一个数值zhangyafei

  变量的作用:昵称,其代指内存里某个地址中保存的内容

变量定义的规则
1.变量名只能是 字母、数字或下划线的任意组合
2.变量名的第一个字符不能是数字
3.以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量的赋值
score=100  #定义了一个变量,这个变量的名字叫做score,它里面存储了一个数值100
high = 180   #单位是cm

appleprice = 3.5 #苹果的价格 元/斤
weight = 7.5     #购买的苹果的重量 斤

money = appleprice * weight  #如果money是第一次的话,那么就表示定义这个变量

money = money - 10   #如果money=xxxx不是第一次出现,那么就不是定义一个变量,而是给这个变量附上一个新的值

  4.输入、输出函数input(),print() 

 # -*- coding:utf-8 -*-#1.使用input获取必要的信息
name =input("请输入名字:")
qq=input("请输入qq:")#2.使用print来打印名片
print("="*20)
print("姓名:%s"%name)
print("qq:%s"%qq)
print("="*20)

  输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

import getpassusername = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
print(username,pwd)

  5.流程控制与缩进

    需求一:用户登录验证  

1 # 提示输入用户名和密码
2
3 # 验证用户名和密码
4 #     如果错误,则输出用户名或密码错误
5 #     如果成功,则输出 欢迎,XXX!

import getpassname = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')if name == "zhangyafei" and pwd == "nb":print("欢迎,zhangyafei!")
else:print("用户名和密码错误"

View Code

    需求二、根据用户输入内容输出其权限

1 # 根据用户输入内容打印其权限
2
3 # zhang --> 超级管理员
4 # chen --> 普通管理员
5 # zhao --> 业务主管
6 # 其他 --> 普通用户

 1 # -*- coding: utf8 -*-
 2
 3 name = input('请输入用户名:')
 4
 5
 6 if name == "zhang":
 7     print("超级管理员")
 8 elif name == "chen":
 9     print("普通管理员")
10 elif name == "zhao":
11     print("业务主管")
12 else:
13     print("普通用户"

View Code

  6.基本数据类型

   (1)数字

  2 是一个整数的例子。长整数 不过是大一些的整数。3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。(-5+4j)和(2.3-4.6j)是复数的例子。

  int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
  float(浮点型)
    浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
  complex(复数)
    复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257

  (2)布尔值

  真或假1 或 0

  详情请看Fslse和None的区别

(3)字符串:用' xx' |"xx" | '''xx'''|"""xx"""连接的在python中叫字符串

万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化

# -*- coding: utf-8 -*-
"""
Created on Sat Jul 28 20:45:07 2018@author: Zhang Yafei
"""
"""
格式化字符串的方式
方法一(%)
"""
# 格式的字符串与被格式化的字符串必须一一对应,需格式化的字符串多时,容易搞混
print('hello %s, you sex is %s.' %('tab', 'boy'))
# hello tab, you sex is boy.
print('hello %s, you sex is %s.' %('boy', 'tab'))
# hello boy, you sex is tab.
# 通过字典方式格式化,哪个字符将会格式化到哪里,清晰命了
print('hello %(name)s, you sex is %(sex)s.' %{'name': 'tab', 'sex': 'boy'})
# hello tab, you sex is boy.

args = {'name': 'tab', 'sex': 'boy'}
print('hello %(name)s, you sex is %(sex)s.' %(args))
# hello tab, you sex is boy.
#方法二(.format)
# 跟方法一第一种方式有点类似的格式化方式
print('hello {0}, you sex is {1}.'.format('tab', 'boy'))
# hello tab, you sex is boy.
# 注意:用字典方式格式化时,指定格式化字符时的位置可以调换
print('hello {name}, you sex is {sex}.'.format(sex='boy', name='tab'))
# hello tab, you sex is boy.
# '**'起到解包的作用
args = {'name': 'tab', 'sex': 'boy'}
print('hello {name}, you sex is {sex}.'.format(**args))
#推荐使用 .format 方法进行格式化字符串,一来清晰明了,二来效率更高(format 是字符串
# str 内置的方法)。更多关于 .format 的用法文档,用户可在交互模式下(终端输入 python
# or ipython or bpython ) 输入 help(str.format) 查看

View Code

字符串常用功能:
  • 移除空白 -> strip()
  • 分割 -> split()
  • 长度 -> length
  • 索引 -> []
  • 切片 ->[:]

(4)列表

  创建列表

nums = [11,22,33,44,55]

基本操作:

  • 索引 -> [index]
  • 切片 ->[start:end]
  • 追加 ->append,extend
  • 删除 -> pop,remove,del
  • 长度 -> len
  • 循环 -> 可迭代对象
  • 包含 ->contrains

(5)元组

  创建元组

ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))

基本操作:
  • 索引 -> [index]
  • 切片 ->[start:end]
  • 循环 -> 可迭代对象
  • 长度 -> len
  • 包含 ->contains

(6)字典(无序)

person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})

常用操作:

  • 索引 -> [index]
  • 新增->dict[key]=value
  • 删除 -> del dict[key]
  • 键、值、键值对 -> key,value,key:value
  • 循环:可迭代对象
  • 长度:len

(7)集合

a = {11,22,33,44,55,66,77}a = set(11,22,33,44,55,66,77)

常用操作:

  • 新增 -> add
  • 删除 -> pop
  • 交 -> &
  • 去重 ->重点
  • 并 -> |
  • 补 -> difference
PS:循环,range,continue 和 break
7.运算符
  复合赋值运算(+-*/)
  

    if比较运算符(<    >   <=  >=  !=  <>)

  

    if 逻辑运算符 and or if not

   

sex = input("输入你的性别:")
if  sex == "男":print("你是男性,可以留胡子")
elif sex == "女":print("你是女性,不可以留胡子")
else:print("你是中性,想干啥干啥")

if elif 

#1.获取用户的输入
num = int(input("输入一个数字(1-7):"))#2. 判断用户的数据,并且显示对应的信息
if num==1:print("Monday")
elif num==2:print("Tuesday")
elif num==3:print("Wednesday")
elif num==4:print("Thursday")
elif num==5:print("Friday")
elif num==6:print("Saturday")
elif num==7:print("sunday")
else:print("您输入的数字有误")

判断星期几

#如果当前用户是男性的话,难么就输入判断女性的要求
sex = input("输入你的性别:")
if sex == "男":color = input("你白吗?")  #白或者黄money = int(input("请输入你的财产总和:")) #输入1000beautiful = input("你美吗?") #美 或者不美#if 白 并且 富 并且 美#if 白 and 富 and,美:if color=="白" and money>1000000 and beautiful=="美":print("白富美……")print("好羡慕……")else:print("黑穷丑……")
else:print("判断男性的要求在下面")color = input("你高吗?")  #白或者黄money = int(input("请输入你的财产总和:")) #输入1000beautiful = input("你帅吗?") #美 或者不美#if 白 并且 富 并且 美#if 白 and 富 and,美:if color=="高" and money>1000000 and beautiful=="帅":print("高富帅……")print("好羡慕……")else:print("矮穷矬……")

实例:白富美

 if条件总结   

if 条件:xxxxif  条件:xxxxxx1
else:xxxxx2if 条件1:xxxx1
elif 条件2:xxxx2
elif 条件3:xxxx3
else:
……嵌套if 嵌套
if xxx:print("---1----")if xxx2:xxxxxxxif xxx:xxxx3
else:xxxxif xxx:
elif xxx:xxxxx2
elif xxxx:xxxx2
……
else:xxxx

View Code

三目运算符

a = A if x>5 else B

 另一种写法

a = [A,B][x<5]

while 循环 

num = 1while num <=10:print(num) #print("%d"%num)num=num+1

while总结

while 循环while 条件:条件满足的时候执行的事情
while 嵌套while 条件:条件满足的时候做的事情1条件满足的时候做的事情2。。。。while 条件2:条件2 满足的时候做的事情。。。。while 条件:1.站起来2.坐下3.站起来while 执行5次4.转1个圈5.坐下

嵌套实例 

ticket = 1 #q表示有车票 0表示没有车票
knifeLenght = 48 #cm
#先判断是都有车票
if ticket==1:print("通过了车票的检测,进入到了车站,接下来要安检了")#盘DAU拿到的长度是否合法if knifeLenght<=10:print("通过了安检,进入了候车厅")print("马上就要见到她了,好开心……")else:print("安检没有通过,等待公安处理")
else:print("兄弟,你还没有买票呢,先去买票,才能进站……")

上火车

i = 1while i<=9:j = 1while j<=i:print("%d*%d=%d\t"%(j,i,i*j),end=" ")j+=1print("")i+=1

打印99乘法表

for循环

for iterating_var in sequence:statements(s)

  sequence即可迭代对象,内部实现了__iter__方法,for循环会遍历其中的每个值

例子

nums = [11,22,33,44,55]for num in nums:print(num)

神奇的for_else 

简述英文原文A break statement executed in the first suite terminates the loop without executing the else clause’s suite. A continue statement executed in the first suite skips the rest of the suite and continues with the next item, or with the else clause if there is no next item.中文译文 用 break 关键字终止当前循环就不会执行当前的 else 语句,而使用 continue 关键字快速进入下一论循环,或者没有使用其他关键字,循环的正常结束后,就会触发 else 语句。
#触发else
list = [1,2,3,4,5]
for x in list:print(x)
else:print("else")list = [1,2,3,4,5]
i = 0
for x in list:continueprint(x)
else:print("else")
#不触发else:
list = [1,2,3,4,5]
for x in list:print(x)break
else:print("else")

总结
for else语句可以总结成以下。 如果我依次做完了所有的事情(for正常结束),我就去做其他事(执行else),若做到一半就停下来不做了(中途遇到break),我就不去做其他事了(不执行else)。只有循环完所有次数,才会执行 else 。break 可以阻止 else 语句块的执行。

8.初始文件操作

打开文件:
open(文件名,访问模式)
f = open("test.txt","w")

打开文件的方式

r,以只读方式打开文件
w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

读取文件:f.read(),f.readline(),f.readlines()

f = open('test.txt', 'r')
content = f.read(5)
print(content)
print("-"*30)
content = f.read()
print(content)
f.close()

写入文件:f.write()

f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()

关闭文件:f.close()

一些案例

#1.获取文件名
old_file_name = input("请输入要备份的文件名(需要后缀):")#2。打开这个文件("r")
f_read = open(old_file_name,"r")#new_file_name = old_file_name+"[复件]"
position = old_file_name.rfind(".")
new_file_name = old_file_name[0:position]+"[复件]"+old_file_name[position:]#3.创建一个文件,xxx[复件].txt
f_write = open(new_file_name,"w")#4.往源文件中读取内容,写入备份的文件中
#content = f_read.read()
#f_write.write(content)
while True:content = f_read.read(1024)if len(content)==0:breakf_write.write(content)#5.关闭两个文件
f_read.close()
f_write.close()

文件备份

import os#1. 获取一个要重命名的文件夹的名字

folder_name = input("请输入要重命名的文件夹:")#2.获取文件夹中所有的文件名字

file_names = os.listdir(folder_name)
'''
第一种方法
os.chdir(folder_name)3.对获取的名字进行重命名即可for name in file_names:print(name)os.rename(name,"[京东出品]-"+name)
'''
#第二种方法
for name in file_names:#print(name)old_file_name = "./"+folder_name+"/"+namenew_file_name = "./"+folder_name+"/"+"[京东出品]"+nameos.rename(old_file_name,new_file_name)print(new_file_name)

批量文件重命名

注:驼峰命名法

englishScore = 100  #小驼峰
english_score = 100  #下划线,推荐
EnglishScore = 100   #大驼峰
englishscore = 100  #不推介

转载于:https://www.cnblogs.com/zhangyafei/articles/10107110.html

Python简介及入门相关推荐

  1. Python之路【第一篇】:Python简介和入门

    Python之路[第一篇]:Python简介和入门 Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗 ...

  2. Python自动化开发【1】:Python简介和入门

    Python自动化开发之路 [第1篇]:Python简介和入门 编程与编程语言 一 编程与编程语言python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语 ...

  3. Python简介和入门

    原文地址:http://www.jianshu.com/p/56ac30b842ef 1.Python前世今生 1.1.Python历史 Python的创始人: Guido van Rossum:之所 ...

  4. Python 简介和入门

    1.Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  5. Python 第一篇:python简介和入门

    一.python简介 1.python下载地址:https://www.python.org/downloads/ Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆 ...

  6. Python基础--Python简介和入门

    ☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...

  7. Python学习【第1篇】:Python简介以及入门

    python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语 ...

  8. 【ArcGIS遇上Python】从入门到精通系列之第一章:ArcGIS Python简介

    文章目录 1. Python简介 2. Python的特点 3. ArcGIS的脚本语言 4. ArcGIS中的Python脚本编辑器 1. Python简介 Python是一种跨平台的计算机程序设计 ...

  9. 《Python编程从入门到实践》记录之while循环简介(break、continue)

    目录 1.使用while循环让用户选择何时退出 2.使用break退出循环 3.使用continue返回循环开头 4.while循环处理列表和字典--在列表之间移动元素 5.while循环处理列表和字 ...

最新文章

  1. [MySQL FAQ]系列 -- mysql是否支持跨库事务
  2. 隐私泄露无孔不入?扫地机器人已成新型“窃听器”,小米Roborock“躺枪”
  3. identifier starts immediately after numeric literal
  4. vmware提示com.vmware.sps.fault.QsConnectionException报错
  5. 【Linux】30.ssh不用手动输入密码登录终端sshpass 和 shell脚本后跟参数自动匹配case的用法
  6. ASP.NET中利用DataList实现图片无缝滚动
  7. 从内存中加载并启动一个exe
  8. 【神经网络八股扩展】:自制数据集
  9. 医疗数据治理——构建高质量医疗大数据智能分析数据基础
  10. 快速切换目录软件推荐——autojump
  11. Ubuntu下解压缩文件
  12. 真狠,为了干掉 HTTP ,Spring团队又开源nohttp了!
  13. libpcap中主要函数使用介绍
  14. Windows操作系统双因素身份认证解决方案
  15. php工具箱的mysql服务_PHP程序员工具箱下载_PHP工具箱(PHP配置PHP学习软件) 1.0 官方版_极速下载站_软件下载...
  16. 阿里云mysql导出表,导出mysql表数据库
  17. MTK之Flash篇二---如何调整Flash中FAT的配置
  18. 【C++·C11】C++ 时间与时间戳
  19. Office 彻底卸载
  20. VS2017 winform开发知识点汇总

热门文章

  1. android 提高启动速度慢,安卓启动速度过慢的原因及解决方法
  2. 【JS】console.log()打印出五彩斑斓的黑
  3. 分享一个支持离线下载的免费网盘
  4. 识字小程序—hanzi-writer-miniprogram实现临摹笔画动画播放等
  5. VMware拟收购云应用管理服务商Wavefront
  6. 西瓜错时上市销售,提高经济效益的背后是技术支持!
  7. vue中如何清除echarts上次保留的数据(亲测有效)
  8. python下的xml创建以及追加信息,删除信息方法
  9. keil编译后报错Error:L6218E的解决方法
  10. mysql 跨库插入_sql 跨库和域插入数据库