Python入门基础一

一、Python介绍

Python的创始人是吉多•范罗苏姆。1989年圣诞节期间为打发时间决心开发一个新的解释程序,作为ABC语言的一种继承。
Python的应用广泛及重要性不再多说,总之,人生苦短,我用Python!

Python是什么语言呢?

编程语言主要从以下几个角度进行分类,编译型和解释型,静态语言和动态语言,强类型语言和弱类型语言。


编译VS解释.png
编译型VS解释型

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据不同的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

动态语言和静态语言

通常我们说的动态语言、静态语言是指动态类型语言和静态类型语言。
动态类型语言:动态类型语言是指运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时在内部将数据类型记录下来。Python就是典型的动态类型语言。

静态类型语言:静态类型语言与动态类型语言刚好相反,他的数据类型实在编译期间检查的,也就是说在写程序时要声明所以变量的数据类型,C/C++是静态语言的典型代表。

强类型定义语言和弱类型定义语言

强类型定义语言:强制数据类型定义的语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当做字符串处理,强类型定义语言是类型安全的语言。

弱类型定义语言:数据类型可以被忽略的语言,他与强类型定义语言相反,一个变量可以赋不同数据类类型的值。

强类型语言在速度上可能略逊于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

通过上边的知识我们可以知道,Python是一门动态解释性的强类型定义语言

Python的优缺点

优点:
1、Python的定位就是“优雅”、“明确”、“简单”。
2、三方库强大,开发效率高。
3、高级语言——无需考虑诸如如何管理你的程序使用的内存一类底层细节
4、可移植性
5、可扩展性——如需要某段关键代码运行更快或不公开,可把部分程序用C或C++编写,在Python程序中使用。
6、可嵌入性。

缺点
1、速度慢
2、代码不能加密
3、线程不能利用多CPU。GIL即全局解释器锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。

注:开发工具使用PyCharm

二、输入输出

Python中输出使用'print()',在括号中可以写入想要输出的内容
print('Helllo , world')
Python中input()函数可以让用户输入并存放到一个变量里

>>> name = input()
Michael
>>> name
'Michael'

注:
Python2.x中raw_input相当于Python3.x中的input
Python2.x中不要用input

那什么是变量?

三、变量

声明变量

name = "LZ"
上述代码声明了一个变量,变量名为:name ,变量name的值为:“LZ”
变量定义的规则:
•变量名只能是字母、数字、下划线的任意组合
•变量名的第一个字符不能为数字
•以下关键字不能声明为变量名
['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’]
另:变量名应可能有含义,如,name、age
如果单词较多可用下划线,如:name_of_dog

变量赋值
  a = "ABC"
  b = a
  a = "XYZ"
  print(b)

执行a=‘ABC’,解释器创建了字符串’ABC’和变量a,并把a指向’ABC’:



执行b=a,解释器创建了变量b,并把b指向a指向的字符串’ABC’:



执行’a=‘XYZ’’,解释器创建例如字符串’XYZ’,并把a的指向改为’XYZ’,但b并没有更改:

所以打印b变量是abc。

空值

空值是Python中一个特殊的值,用None表示。None不能理解为0,因为0是有意义的而None是一个特殊的空值。

代码注释

当行注释用:#
多行注释用:’’’ ’’’

编码问题

Python2.x中如果有中文需要在文件开头
# -*- coding: utf-8 -*-
Python3.x中默认引入,所以直接就可表示中文

四、数据类型初识

数字

int(整型)
  在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-263~263-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

布尔值

一个布尔值只有True、False两种值,要么是True,要么是False。在Python中可以直接用True、False表示布尔值(注意大小写),也可以通过布尔运算and 、or、和not 计算出来。
布尔运算在计算机中用来做条件判断,根据计算结果为True或False,计算机可以自动执行不同的后续代码。

a = True
print a and 'a=T' or 'a=F’

输出结果是字符串’a=T’。
解释:Python把0、空字符串和None看成False,去他数值和非空字符串都看成True。
and 和 or 运算的一条重要法则:短路计算

  1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
  2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
字符串

字符串可以用单引号''或双引号”"括起来表示。如果字符串中含有 ‘ ,比如 I’m OK.我们用双引号括起来表示。类似的,如果字符串中有双引号,我们就用单引号括起来表示。
如果字符串中既包含双引号又包含单引号,就需要对字符串的某些字符进行“转义”,Python字符串用 \ 进行转义。
要表示字符串 Bob said "I'm OK”.
由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个 \ 表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为 'Bob said "I'm OK\”.'
计算字符串的字符数用len()函数
注意:转义字符 \ 不计入字符串的内容中。
常用转义符:\n换行 \t 制表符 \表示 \ 字符本身
PS: 字符串是 %s;整数 %d;浮点数%f

列表

Python内置的一种数据类型是列表list,list是一种有序的结合,可以随时添加和删除其中元素。
构造list很简单,直接用[ ]把list的所有元素都括起来就是一个list对象。
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一数据类型。
L = ['Michael', 100, True]
一个元素都没有的list就是空list。empty_list = []
len()函数可以获得list元素的个数。
用索引来访问list中每一个位置的元素,索引是从0开始的。

>>> L[0]
'Michael'
>>> L[1]
100

索引可以使用负数,例如可以用L(-1)来获得最后一个元素。
当索引超出范围时Python会报一个IndexError的错误。
list是一个可变的有序表,所以可以往list中追加元素到末尾:

>>> L.append('Adam')
>>> L
 ['Michael', 100, True, 'Adam']

删除末尾的元素:

>>> L.pop('Adam')
>>> L
 ['Michael', 100, True]

删除指定位置的元素:

>>> L.pop(1)
100
>>> L
 ['Michael',  True]

替换某个元素:

>>> L(1)='haha'
>>> L
 ['Michael',  'haha']

list中元素也可以是list
s = ['python', 'java', ['asp', 'php'], 'scheme']
想获得'asp'可以用s[2][0]获得。

元组

tuple是另一种有序列表,中文翻译为元组。tuple和list非常相似,但是tuple一旦创建完毕就不能修改了。
创建tuple和和创建list唯一不同之处就是用( )代替[ ].
tuple和list一样可以包含0个、1个和任意多个元素。
包含0个元素的tuple就是空tuple,t=()。
创建一个元素的tuple时,因为小括号既可以表示tuple又可以作为括号表示运算的优先级所以t=(1)被Python解释器计算结果是1而不是tuple。所以Python规定,单元素tuple要多加一个逗号这样就避免了歧义:t=(1,)
元组中的元素如果是列表,列表中元素是可变的。

字典
d={
    'LZ':95,
    'SY':86,
    'HB':90
}

用花括号{}表示一个字典,冒号之前叫key,之后叫value.
字典是一个无序的集合。
可以根据key查找相应的value

>>>d['LZ']
95

如果key不存在就会报错,可以通过in判断是否存在

>>>'haha' in d
False

还可以通过dict提供的get方法,如果key不存在可以返回None或自己指定value

>>> d.get('haha')
>>> d.get('haha', 100)
100

删除一个key用pop(key),对应的value也会删除

>>> d.pop('haha')
100
>>> d
{ 'LZ':95, 'SY':86,'HB':90}

注:key不能为可变对象

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

重复元素在set中自动被过滤:

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象。

格式化
name=input("name=")
age=input("age=")
job=input("job=")

info='''
   --------info of %s--------
   name:%s
   age:%s
   job:%s
'''%(name,name,age,job)
# print(info)

info2='''
   ---------info of {_name} ---------
   name:{_name}
   age:{_age}
   job:{_job}
'''.format(
        _name=name,
        _age=age,
        _job=job

)
# print(info2)

info3='''
   ---------info of {0}--------
   name:{0}
   age:{1}
   job:{2}
'''.format(name,age,job)
print(info3)

%运算符就是用来格式化字符串的,在字符串内部有几个%s后边就对应几个变量或值,顺序要对应好。
常用的占位符:%d ---整数 %f---浮点数 %s---字符串 %x---十六进制整数

五、数据运算

算数运算
算数运算.png
比较运算
比较运算
逻辑运算
逻辑运算
赋值运算
赋值运算
成员运算
成员运算
身份运算
身份运算
位运算
位运算

六、判断表达式 if ···elif···else···

#给定一个年龄
#让用户输入一个年龄,与给定的进行判断
ge_of_mine=15
guess_age= int (input("guess_age="))
if guess_age==age_of_mine:
    print("yes,you got it")

elif guess_age>age_of_mine:
    print("think smaller")

else:
    print("think older")

七、循环

for循环
#简单的循环输出
for i in range(10):
      print (i)
#从1开始,隔一个数打印一个,10以内
for i in range(1,10,2):
      print(i)
While循环
count = 0
while True:
     print(count)
     count +=1

continue:跳出当前本次循环,进行下一次循环
break:直接跳出整个循环

八、循环及条件判断综合运用

#猜年龄,最多猜三次
age_of_mine=15

for i in range(3):

    guess_age = int(input("guess_age="))

    if guess_age == age_of_mine:
        print("yes,you got it")
        break

    elif guess_age > age_of_mine:
        print("think smaller")

    else:
        print("think older")


else:
    print("you have tried too many times...fuck off")

继续学习,持续更新。。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,664评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,674评论 0 5
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,562评论 1 118
  • Python 简介Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设...
    在暴风雨中逆袭阅读 1,718评论 0 12
  • 本教程基于Python 3,参考 A Byte of Python v1.92(for Python 3.0) 以...
    yuhuan121阅读 3,048评论 1 6