概要: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. solr6.6 配置自带中文分词

    1.配置solrconfig.xml solr的自带中文分词包在solr-6.6.0\contrib\analysis-extras\lucene-libs下 修改solrconfig.xml增加 & ...

  2. 关于 iOS 证书,你必须了解的知识

    收录待用,修改转载已取得腾讯云授权 最新腾讯云技术公开课直播,提问腾讯W3C代表,如何从小白成为技术专家?点击了解活动详情. 作者 |陈泽滨 编辑 | 顾乡 从事iOS开发几年,越来越发现,我们的开发 ...

  3. 使用JavaScript和Canvas实现下雪动画效果

    该下雪动画效果使用了HTML5中Canvas画布实现,其中涉及了物理学中曲线运动的相关知识与运算. index.html <!DOCTYPE html> <html lang=&qu ...

  4. 转: Linux与JVM的内存关系分析

    Linux与JVM的内存关系分析 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使 ...

  5. 转:从零开始做app需要做的事情列表

    https://qdan.me/list/VaXl7N8emfv1ayWg 从零开始做App的Bootstrap 做一个App,需要很多东西. 不定期更新. 团队 工欲善其事,必先利其器. 需求管理 ...

  6. riched32.dll riched20.dll msftedit.dll 解析

    摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值.因为 ...

  7. MAC下安装Mysql数据库

    步骤一:安装 登录官网:mysql数据库下载官网下载合适的版本 下载完成后,在Finder的侧边栏为下载的目录中,找到下载完成的文档. 单击下载文档,单击MySQL-5.6.22-osx10.8-x8 ...

  8. 高仿手机QQ音乐之——Android带进度条的开关

    最新版的手机QQ音乐体验确实不错,发现首页播放按钮能够显示歌曲当前进度条.认为挺有新意.效果例如以下: 自己琢磨了下.能够用自己定义组件来实现,试着做了一下.效果例如以下: 整理了下思路.大概设计流程 ...

  9. 通过浏览器查看nginx服务器状态配置方法

    通过浏览器查看nginx服务器状态配置方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了通过浏览器查看nginx服务器状态配置方法,本文讲解开启nginx-status的配 ...

  10. WP8学习笔记:如何在页面显示前自动转向到其他页面

    在本次修练开始之前,我们除了预设的 MainPage页面外,也另外新增了一个 Login页面,如下图示: MainPage.xaml页面长这样 Login.xaml页面长这样 因为我们的需求是要求使用 ...