python3基础语法(一)

有过C/C++/java基础,虽然都是皮毛…开始自学python 总会顺利一些。
环境:win+R > python --version
Python 3.6.5 :: Anaconda, Inc.
环境搭建就不说了 搭好环境后
cmd控制台输入python 进入命令行交互式编程
可直接用cmd或者IDEL或者pycharm做解释器
因为想要开始快一些,暂时能上手,然后在项目中查缺补漏。

收集资料:

参考了此处https://www.jianshu.com/p/5e69417ed9d2
python3官方文档中文版 很不错:http://www.pythondoc.com/pythontutorial3/index.html
Awesome Python 最全的python资源,找项目练手:https://github.com/vinta/awesome-python
中文版移步:https://github.com/jobbole/awesome-python-cn
笨方法学python,最受欢迎的python入门教程。PDF地址:链接:https://pan.baidu.com/s/1i4YiHZv 密码:t5i4
廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400
简明python教程:链接: https://pan.baidu.com/s/1iI9gbyNkSlrMQIslH9aahQ 提取码: nuah

晚辈暂时计划看一遍菜鸟教程的基础,再一遍官方文档,穿插做小项目。

python特点
一种解释型、交互式、面向对象、跨平台的语言

优点:
1.易于阅读和维护
2.有一个广泛的标准库
3.python支持坏人各种主流数据库之间的交互
4.可扩展性和可移植性
5.GUI编程【图形化界面】
6.可嵌入型【可以将python程序嵌入到c++中】
缺点:
1.运行速度慢
2.代码不能加密

编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 -*-

保留字(关键字)

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

标识符

  • 第一个字符必须是字母表中字母下划线 _
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对 大小写敏感
    python区分大小写很重要,如 True,False是关键字,而true,false是用户可定义的变量

在 Python 3 中,非 ASCII 标识符也是允许的了。

注释 (# ‘’’ ‘’’ “”" “”")

单行注释 相当于 C/C++的 //

#!/usr/bin/python3		

多行注释 相当于 /**/

'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""

python 基本数据类型

变量

python变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量就会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

a,b,c = 1,2,"hello"    #允许为多个变量同时赋值

width = 1080
height = 1920
name = "hello"
print(width,height,name)

#换行输出
print(width)
print(height)
print(name)
#不换行输出
print(width,height,name)
#或者 这样不换行输出
print(width,end=" ")
print(height,end=" ")
print(name,end=" ")

Python3 有六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

1. Number(数字)

Python3 支持 int、float、bool、complex(复数)

只有一种整数类型 int,表示为长整型,没有Long

可用内置type() 函数查询变量的数据类型,或者 isinstance(object,type)方法判断。

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
   
name = "hello world"
flag = isinstance(name,str)
print(flag)

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

**注意:**在Python3 中,把 True 和 False 定义成关键字,但它们的值还是 1 和 0,它们还可以和数字相加。
您可以通过使用del语句删除单个或多个对象。例如:

del var
del var_a, var_b

pi = 3.1415926
del pi
print(pi)		#无任何输出,pi对象已被删除

数值运算
基本的+ - * / %可以直接使用,//表示floor(),整除,**表示乘方运算

>>> 2 // 4 	# 除法,得到一个整数
0
>>> 2 ** 5 	# 乘方
32

复数

Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

python3基础语法(一)_第1张图片

2. String(字符串) - 不可变数据

要理解: 索引 截取 + *

截取的语法格式和字符串一样:变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是列表连接运算符,星号 * 是重复操作
python3基础语法(一)_第2张图片

line = "You're never wrong to do the right thing"
str = "you are right"
print(line[0:1])    #Y 从下标为0的元素开始 截取到下标为1的光标前

print(line[1:3])            #ou  从第2个元素开始,输出到第3个元素  或者说 从下标为1元素开始 输出到下标为3的元素之前
print(line * 2)             # 重复 输出字符串两次
print(line[7:12] * 2)      #nervernerver 输出截取的字符串 两次
print(line + str)				#连接

string是不可变数据,line[0] = ‘1’ 错误,不能修改字符串的值

3. List(列表)-可变数据

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

列表的索引截取的语法和字符串一样,列表被截取后返回一个包含所需元素的新列表。

截取的语法格式和字符串一样:变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是列表连接运算符,星号 * 是重复操作

以上列表的使用语法和字符串基本完全一样
区别在于

  • string数据不可变,而List是可变数据
  • List截取有三个参数,第三个参数设置截取的步长,第三个参数为负表示反向截取
print("==================List(列表) - 可变数据===================")
#列表的使用和字符串string基本一样
List = ['abcd', 678, 1.23, 'runoob', 79.321, 0.0]
Love = ["I love U"]
print(List)

print(List[0])
print(List[1:3])    #从第2个元素开始,输出到第3个元素    #或者说 从下标为1元素开始 输出到下标为3的元素之前
print(List[2:])
print(List*2)       # *是重复操作
print(List + Love)		# + 是连接操作

print("与string不同 列表可以改变数据")
List[0] = 0					#直接改变某下标的数据
List[1:4] = [1,2,3]			#改变截取一段的数据
print(List)
List[4:6] = []      #将对应的数据设置为[],相当于删除数据
print(List)         # 0,1,2,3
List[1:2] = []
print(List[0:])     #0,2,3

print("与string的截取不同 列表截取有三个参数,第三个参数设置步长")
arrayList = [0,1,2,3,4,5,6,7]
print(arrayList[1:5:2])     #每两步长 截取一次 隔一个数截取一次
print(arrayList[1:8:2])     #1 3 5 7
print(arrayList[-1::-2])    #第三个参数步长为2 负号表示反向截取 截取的起始位置是 -1,第二个参数表示截取到末尾

简单应用List - 字符串翻转
如,list = [1,2,3,4]
其中,list[0] = 1,list[3] = 4
则list[0] = list[-1] 就是置换
list = list[-1::-1] #则逆向从尾截取到头 赋值给原list 就达到翻转的翻转的效果

#应用 翻转字符串
def reverseWords(input):
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")

    inputWords = inputWords[-1::-1]     #直接赋值 逆向 相当于每个元素的头尾置换

    output = ' '.join(inputWords)      # ['coding', 'like', 'I']

    return  output

if __name__ == "__main__":
    input = "I like coding"
    rw = reverseWords(input)
    print(rw)

输出:
coding like I

你可能感兴趣的:(python)