Python_day1_基础知识

python 简介

python是一门广泛流行的动态语言。它不光可以写后端,还可以写web,图像处理,做自动化运维,自动化测试,爬虫,数据分析。

特点

  • 纯面向对象语言,万物皆对象
  • 支持面向过程和面向对象的编程范式
  • 有着丰富的标准库和第三方库支持
  • 良好的可扩展性,可以很容易的和其他语言进行交互

缺点

  • 忘掉吧!

python主流种类

  • CPython. 官方版, 使用C语言实现, 使用最为广泛, 会将源代码z转换成字节码(.pyc)运行
  • JPython. 使用JAVA实现
  • PyPy. 使用Python实现,为速度而优化

Python2 还是 Python3

因为linux系统自带python2.x版本。所以在未来几年还是主要使用版本。
但是3.x不管是从性能还是功能上,已经远远超越了2.x,python库基本上都可以在3.下使用了。所以是时候学习3.x了。

What's new in Python3 ?

  • print to print()
2.x: >>> print "hello world"
3.x: >>> print("hello world")
  • raw_input() to input()
2.x: >>> raw_input(">")
3.x: >>> input(">")
  • All is unicode
    • 再也不用操心乱码问题
  • 数学运算
2.x: 
>>> 1/2
0
3.x: 
>>> 1/2
0.5
  • 详细信息请移步 WhatsNew

第一个程序

创建一个hello_world.py,内容如下

#/usr/bin/env python3
# -*- coding: utf-8 -*-

print("hello world")

第一行代码指定使用哪个python解释器,env会去找名叫python3的解释器来执行代码
第二行代码指定了使用哪种编码

执行代码

$ python3 hello_world.py
hello world

缩进

Python的代码既整洁又美观,因为它使用缩进来表示层级关系。
推荐使用4个空格来代替Tab键。

#/usr/bin/env python3
# -*- coding: utf-8 -*-

if True:
    print("Hello")
else:
    print("World")

就是这么干净,是不是更喜欢Python了呢!


基本数据类型

数据类型是重点,重点,重点

数字

  • int,整数
    -3,-2,-1,0,1,2,3

  • float,包含小数
    1.2,0.1

  • 字符串
    使用单引号或双引号括起来的就是字符串。
    'Hello',"World"
    它们有什么区别:没什么区别,看个人心情。
    不过有个地方要注意一下
    test1 = 'I'm boy'
    test2 = "I'm boy"

    • 字符串格式化
      • 在python中,抛弃字符串拼接 “+”
      • 使用%s
  • 布尔型

    • True
    • False
    • 0 == False,1 == True
  • 列表
    • 定义一个列表 new_list = [1,2,3,4]
    • 列表操作
      • 列表通过索引(下标)获取数据,索引从0开始。如 new_list[0] 为1
      • append(object) 往列表末尾添加元素
      • clear() 清空列表所有元素
      • copy() 浅拷贝
      • count(value) 统计指定元素出现几次
      • index(value,[start,[stop]]) 查找指定元素第一次出现的下标
      • insert(index,object) 将元素插入指定位置
      • pop([index]) 默认删除列表最后一个元素
      • remove(value) 删除第一次出现的元素
      • sort() 对列表的元素进行排序
      • extend(iterable) 将iterable中的元素添加到列表中
  • 元组
    • 列表是可变的,而元组不可变
    • 声明一个元组
      • new_tuple = (0,1,2,3)
    • 元组操作
      • count()
      • index()
  • 字典
    • 存储的k-v键值对,查询速度超级快

变量与赋值

什么是变量?它是一个代号,通过变量,可以调取真实数据。
先声明一个字符串变量
name = 'wupeiqi'

说明:

  1. 先声明一个变量名name
  2. 在内存中开辟一个空间,用来存储字符串 'wupeiqi'
  3. 通过 ‘=’ 把name 指向到存储 ‘wupeiqi’ 的内存地址
Python_day1_基础知识_第1张图片
变量说明

现在来打印变量name
print(name)

变量名命名规则

  1. 只能以字母或者下划线开头

  2. 由字母下划线和数字组成
    合法变量名 a_1, _a1
    非法变量名 1_a

  3. Python关键字不能作为变量名,如 if else

  4. 尽量使用有意义的变量名


用户交互

很多情况下,程序需要通过用户的输入来进行程序的走向。
比如程序不知道你的性别,所以就要用户告诉程序。

Python3 使用 input()函数来获取用户输入
sex = input("Are you are boy or girl? ")


流程控制

当知道了用户输入,就可以就此来做判断。
条件判断 if ... elif ... else

sex = input("Are you are boy or girl? ")

if sex == "boy":
    print("去男厕")
elif sex == "girl":
    print("去女厕")
else:
    print("我也不知道你该去哪个厕所")

循环

这不行啊!如果用户不小心输错性别,那不得后悔死啊!
所以就要用到循环来给用户更多的机会

while 循环

while True:
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男厕")
    elif sex == "girl":
        print("去女厕")
    else:
        print("我也不知道你该去哪个厕所")

这下好了,用户总算可以找对厕所了。
然而,用户又说了:为毛程序一直问我性别啊!输对了还问,傻13啊
原来 while 的条件为 True,所以程序会一直运行。

那就让程序知道为boy时退出(女生继续玩,嘿嘿)

while True:
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男厕")
        exit() # exit() 退出程序
    elif sex == "girl":
        print("去女厕")
    else:
        print("我也不知道你该去哪个厕所")

for 循环

都说事不过三,不能老是犯错误吧!
所以加个次数限制,如果还是错了,那真对不起了!

这里限制3次

for i in range(3):
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男厕")
        exit()
    elif sex == "girl":
        print("去女厕")
    else:
        print("我也不知道你该去哪个厕所")
        print("你到底是男是女还是~~")

有两个关键字可以控制循环

  • break 跳出当前循环
  • continue 跳出本次循环,继续下一次循环

文件操作

打开文件hello_world.py
new_file = open('hello_world.py','r')

文件模式

  • r, 只读。
  • w, 只写。文件存在会覆盖重写,文件不存在会创建,
  • a, 追加。文件存在会定位到文件末尾添加新内容,文件不存在会创建并写入
  • w+

一定要小心使用 w 模式,会抹掉文件内容的

读取文件

  • new_file.read() 一次性读取所有内容
  • new_file.readlines() 按行读取所有内容,依次存储在列表中
  • new_file.readline() 一次读取一行

写入文件
new_file.write("xxx")

关闭文件句柄
new_file.close()

使用with ... as ... 的方式可在运行完代码后自动close

with open('hello_world.py','r') as f:
    print(f.read)

待补充

基础很枯燥,很乏味。但却是最重要的。
没事多温习下,发现遗漏的知识点再补充进来。

你可能感兴趣的:(Python_day1_基础知识)