概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行。python使用缩进来组织代码块,Python程序中大小写是敏感的。#是单行注释;

第一节:数据类型和变量

1.数据类型:计算机不仅可以处理数值,而且可以处理文本,图形,音频,视频,网页等数据,处理不同的数据需要定义不同的数据类型。我的理解呢,就是,对于不同的数据,计算机是不知道的,用户直接定义好,那么计算机可以直接识别出来现在处理的数据是什么样的数据,其实数据类型就是起到这个作用。

2.数据类型分类

  整数:python可以处理任意大小的整数,写法和数学中的写法一毛一样,也可以用十六进制表示。

  浮点数:其实就是小数,小数位数太多所以引入E,比如1.23e8相当于:1.23*10的8次方,整数在内存中存储是精确的,浮点数是不精确的。

  字符串:是以单引号或者双引号括起来的任意文本。print(r'字符串内容')前边加上r表示该字符串不用转义。

      print('''line1

      line2

      line3''')字符串内部有换行,则可以使用这种形式。

  布尔值:一个布尔值只有True和False两种。布尔值可以用在and or  not运算中,布尔值经常用于条件判断中。

  空值:空值是一个特殊的值,用None表示,不能理解成0,0是有意义的,None是一个特殊的空值。

3.变量定义:必须以大小写英文,字母,数字和_组合,且不能以数字开头。python中同一个变量可以赋给不同的数据类型值,python是动态性语言。

理解变量在计算机内存中的表示:a = 'abc';python解释器做了两件事:第一,在内存中创建了'abc'字符串,第二,在内存中创建了变量a,并将它指向了字符串'abc'

4.常量:不能改变的变量,用全部大写的变量名来表示常量,

5.python中的除法:第一种:'/'除法的结果是浮点数,第二种:'//'除法的结果是整数。

注解:python的整数和浮点数都没有大小限制。

第二节:字符串和编码

  首先:字符串也是一种数据类型,但是字符串涉及到一种编码问题,各国的语言不通,设计的编码也就不同。ASCII码,和Unicode编码的主要区别是:前者是一个字节表示一个字符,后者是两个字节表示一个字符。--可变长的字符编码UTF-8;计算机内存中的字符编码都是Unicode编码.

  其次:在py3中字符串是以Unicode编码的,py的字符串支持多语言。ord()函数获取某个字符的整数表示。比如:ord('a') ,chr()函数把编码转换成对应的字符,比如:chr('66').

  最后:python的字符串中一个字符对应于多个字节,要想通过网络传输,或者保存到磁盘中,必须把str转变为以字节为单位的bytes,比如x = b'abc'每个字符只占用一个字节。   

  明确encode()和decode()的用法;获取字符包含多少个字符用len(str)函数。计算字符串的字节数:len(b'str')

  字符串格式化:通过'%'来格式化字符串

第三节:使用list和tuple

  第一:list

  定义:list也是一种数据类型,-->是列表类型,并且是一种有序集合,可以随时添加和删除其中的元素。自己理解:其实就是PHP中的数组吧。

  举例:classmates = ['a','b','c'];变量classmates是一个list类型。获取list元素的个数用len()函数来处理。

  访问:通过索引的形式访问list中的元素,比如:classmates[0]、classmates[1],  取最后一个元素方法:classmates[-1],倒数第二个:classmates[-2]

  注解:超过list的索引的时候,会报IndexError错误,所以要记住索引的最大值为len(classmates)-1

  特点:list是一个可变的有序表,可以给list中追加元素到末尾。

  方法:

    追加一个元素到末尾,classmates.append('d');

    在指定的元素之后插入一个元素:classmates.insert(0,'z');

    删除末尾的元素:classmates.pop()删除的结果是返回删除的元素值。

    删除list中指定元素的值:classmates.pop(索引值)  举例:classmates.pop(0)

    替换某个元素的值:classmates[索引值] = '值'   举例:classmates[0] = 'e'

    注解:list中的元素也可以是不同的数据类型;list中可以还有list,(其实就相当于一维数组中还有一个一维数组)访问方式一样;list可以为空;

    第二:tuple

    定义:是一个有序列表,叫做元组,tuple中的元素值一旦初始化就不能在更改。和list不同的是:没有那些修改插入,删除的方法。

    语法:classmates = ('a','b','c')

    特殊:可变的tuple,也就是说tuple中可以包含有list,list其实是可以改变的。要理解这中方式。  

      

总结:list和tuple是py中的内置的有序集合,list是可变的,tuple是不可变的。  

第四节:条件判断

  1.定义:计算机之所以可以自动化执行任务,是因为计算机自己可以进行条件判断。

  2.语法:if <条件判断1>:

        <语句执行1>

      elif <条件判断2>:

        <语句执行2>

      else:

        <语句执行3>

举例:

age = 28
if age >= 18:#条件判断
print('your age is',age)#执行语句块
print('adult')
elif age >= 6:
print('your age is',age)
print('teenager')
else:
print('your age is',age)
print('kids')

  

    简写形式:if  x:

          print('语句')    只要x是非零数值,非空字符串,非空list都是为真。

  3.特点:执行从上到下执行,只要有一个条件符合,就执行其中的语句,如果都不符合,就执行else中的语句,和其他语言的条件判断思想基本一致。

  4.讨论input();input返回的是字符串型,不能和整数直接比较,需要进行转换才能和整数比较。

birth = int(input('birth:'))#将用户输入的值转换成整型
if birth <= 2000
print('00前')
else:
print('00后')

  举例:

height = 1.75
weight = 80.5
bmi = weight/(height*height)
print(bmi)
if bmi <= 18.5:
print('您的体重过轻,请补充营养')
elif bmi>=18.5 and bmi<=25:
print('您的体重正常,恭喜了')
elif bmi>=25 and bmi<=28:
print('您的体重过重')
elif bmi>=28 and bmi<=32:
print('您的体重肥胖')
else:
print('您过于肥胖,请节制') 

第五节:循环

  第一种:for x  in.......  解释:把每个元素带入到x中,然后执行缩进块的语句

  举例:

names = ['a','b','c']
for name in names:
print(name)

  举例:实现1--10之间的整数之和

sum = 0
for x in [1,2,3,4,5,6,7,8,9,10]:
sum += x
print(sum)

  函数:range()生成一个整数序列。

  举例:实现0--100之间的整数之和

sum = 0
for x in range(101):
sum += x
print(sum)

  第二种:while循环

  定义:只要条件满足,就不断循环,条件不满足就退出循环。

  举例:实现0到100之间的奇数之和

 

sum = 0
n = 99
while n >0:
sum += n
n = n-2
print(sum)

  解释:在循环内部中,n不断自减,直到n变为-1时,条件不再满足,在执行print(sum)语句。一定要明确循环的开始条件,结束条件。

  举例:通过不同的循环方法实现,打印出'hello name'

  第一种方法:for x  in  .....

L= ['a','b','c']
for name in L:
print('hello',name)

  第二种方法:while循环

L = ['a','b','c']
i = 0
while i < len(L):
name = L[i]
print('Hello',name)
i = i+1

  break:在循环中,通过break语句可以提前退出循环,-----一般是通过条件来判断,当满足该条件时,执行break语句,跳出当前循环,不在执行以下的代码。

  举例:打印出1--100的数字

n = 1
while n < 101:
print(n)
n = n+1

  通过break控制上述代码,只打印出1--10的数字

n = 1
while n < 101:
if n>10:
break
print(n)
n = n+1

  continue:在循环过程中,可以通过continue来跳过当前循环,直接进入下一次循环

n = 1
while n < 11:
n = n + 1
if n%2 == 0:
continue
print(n) 输出奇数

 小结:break和continue都是控制循环输出的,break是直接跳出循环,结束循环;而continue是结束当前一次的循环直接执行下一次的循环。

 使用场景:比如要取到某些特殊的值。通常配合if语句一起使用。

第六节:使用dict和set

  第一个:dict

  定义:Python内置的字典,其实就是key--value键值对,具有很快的查找速度

  语法:d = {'key1':value1,'key2':value2,.........}

  访问:d['key1'] 添加一个元素:d['key'] = value;当dict中没有这个key时,会报错。删除一个元素:dict.pop('key')相应 的value值也会删除

d = {'a':56,'b':45}
d['c'] = 76
print(d)

  注解:当多个key相同的时候,取最后一个值;dict内部的存放顺序和key放入的顺序无关;dict中的key是不可变对象。

  避免key出现错误:第一种:'key' in dict 若存在返回True,否则返回False;第二种:使用dict的get方法,比如:d.get('key',指定的值)

  list和dict的比较:

    1.dict的查找和插入非常快,不会随着key的增加而变慢

    2.dict需要占用大量的内存,内存浪费严重

    而list:1.查找和插入的时间随着key的增多时间增加;2.占用空间少,内存浪费的少。

  第二个:set

  定义:十一组key的集合,但是不存储value,因为key不能重复,所以,在set中,没有重复的key.重复的元素在set中会被过滤掉。

  语法:s = set([list])  

  方法:添加 s.add()  删除:s.remove()

  set和dict的根本区别:set不存储value.

  注解:

   字符串是不可变对象,list是可变的。a = 'abc',变量a中存储的是abc字符串对象。

   对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

小结:明确dict和set的区别,以及python的基础知识要打牢。

第二章----python基础的更多相关文章

  1. 第二章 python基础(一)

    第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...

  2. 第二章 Python基础语法

    2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...

  3. 第二章 python基础(二)

    第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...

  4. 第二章 python基础(三)

    第十六节 MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQ ...

  5. 第二章Python入门

    第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...

  6. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  7. [Python笔记][第二章Python序列-复杂的数据结构]

    2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...

  8. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  9. [python笔记][第二章Python序列-list]

    2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...

随机推荐

  1. 写一个函数判断字符串中"{"与"}","["与"]","("与")"匹配,"{"必须在"}"前面,"["必须在"]"前面,"("必须在")"前面,可以嵌套

    boolean matchBracket( String str ) { Stack stack = new Stack(); try { for ( int i = 0; i < str.le ...

  2. Python数据整合与数据准备-BigGorilla应用

    一.前言 要应用BigGorilla框架对应数据进行数据的处理与匹配,那么首先要下载Anaconda安装,下载地址:https://www.continuum.io/downloads Anacond ...

  3. jQuery 全选 正反选

    <script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript&quo ...

  4. 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了

    如下的$.ajax函数 $.ajax({ url: url,// 请求的地址 data:{id:id,pieceId:pieceId,pieceDesc:pieceDesc,actualStock:a ...

  5. Tomcat:IOException while loading persisted sessions: java.io.EOFException 解决

    转自:http://www.blogjava.net/apple0668/archive/2007/10/12/152383.html Tomcat启动时如下错误: 严重: IOException w ...

  6. web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数)

    web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数) 说明:凡函数中以日期作为參数因子的,当中日期的形式都必须是yy/mm/dd.并且必须用英文环境下双引號(" & ...

  7. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性——位置设置偏向

    LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内 ...

  8. android 调用系统界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 首先,我们先看拨号界面,代码如下: Intent intent =new Intent(); intent. ...

  9. 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结

    经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置 ...

  10. xcode7.1.1不能真机调试ios9.2系统设备的解决方法

    转载自:http://www.cocoachina.com/bbs/read.php?tid-331335.html 前些天手机升级到iOS9.2版本号  xcode7.1还能真机測试. 昨晚更新xc ...