博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础语法
阅读量:3942 次
发布时间:2019-05-24

本文共 3120 字,大约阅读时间需要 10 分钟。

python语法基础

  • python靠缩进表达代码逻辑:缩进4个空格
  • 注释:# (pycharm中:ctrl+?)
  • 续行:\

输入输出

  • 输出:print()
  • 输入:input()

标识符:变量、模块、函数、类等

  • 首字符必须是字母或下划线
  • 其他字符是字母数字下划线
  • 区分大小写

变量赋值

  • 变量赋值操作自右向左进行,将=右边的表达式计算出结果,赋值给=左边的变量
>>> a = 5 + 5>>> a = a + 5>>> a += 5
  • 变量在使用之前必须先赋值,否则出现NameError
>>> n = n + 5Traceback (most recent call last):  File "
", line 1, in
NameError: name 'n' is not defined

数据类型

按存储模型分类

  • 标量:数字、字符串
  • 容器:列表、元组、字典

按更新模型分类

  • 可变:列表、字典
  • 不可变:数字、字符串、元组
>>> s1 = 'python'>>> alist = [1, 2, 3]>>> s1[0]'p'>>> alist[0]1>>> alist[0] = 10>>> alist[10, 2, 3]>>> s1[0] = 'P'Traceback (most recent call last):  File "
", line 1, in
TypeError: 'str' object does not support item assignment>>> s1 = 'Python'

按访问模型分类

  • 直接:数字
  • 顺序:字符串、列表、元组
  • 映射:字典

判断语句的语法

if 表达式1:    语句块1elif 表达式2:    语句块2else:    语句块N

**注意:**多分支只会执行一个分支

循环

  • while循环:不知道循环次数
  • for循环:提前可以知道循环执行的次数
  • continue:跳过本次循环,continue后续代码不再执行,进入下一次循环
  • break:结束循环,循环体内break后续代码不再执行
  • else:循环被break,else不执行;循环因为条件不再满足导致循环结束,else才执行

列表解析

>>> [5][5]>>> [5 + 5][10]>>> [5 + 5 for i in range(5)][10, 10, 10, 10, 10]>>> [5 + i for i in range(1, 6)][6, 7, 8, 9, 10]>>> [5 + i for i in range(1, 6) if i % 2 == 1][6, 8, 10]>>> ['192.168.1.' + str(i) for i in range(1, 255)]

文件

文件操作过程

  • 打开文件
  • 读写文件
  • 关闭文件

常用的读取文本文件的方法

>>> with open('/etc/passwd') as fobj:...     for line in fobj:...         print(line, end='')

常用的读取非文本文件的方法

>>> with open('/etc/passwd', 'rb') as fobj:...     while True:...         data = fobj.read(4096)...         if not data:...             break...         print(data)

判断条件

以数据类型作为判断条件

  • 数字:非0为真,0为假
>>> if -0.0:...     print('yes')   # 不打印
  • 其他数据类型:非空为真,空为假
>>> if ' ':   # 空格也是字符,这是非空字符串...     print('yes')... yes

函数

函数基本的写法就是将过程代码加上名字而已

fib = [0, 1]n = int(input('长度: '))for i in range(n - 2):    fib.append(fib[-1] + fib[-2])print(fib)
def gen_fib():    fib = [0, 1]    n = int(input('长度: '))    for i in range(n - 2):        fib.append(fib[-1] + fib[-2])    print(fib)

函数定义不会执行函数中的代码,需要调用函数才会。

gen_fib()

函数执行的返回值需要用到关键字return,否则返回None

def gen_fib():    fib = [0, 1]    n = int(input('长度: '))    for i in range(n - 2):        fib.append(fib[-1] + fib[-2])    print(fib)a = gen_fib()print(a)   # None

返回值由你自己决定,但是要合理

def gen_fib():    fib = [0, 1]    n = int(input('长度: '))    for i in range(n - 2):        fib.append(fib[-1] + fib[-2])    return '吃了吗'a = gen_fib()print(a)   # 吃了吗
def gen_fib():    fib = [0, 1]    n = int(input('长度: '))    for i in range(n - 2):        fib.append(fib[-1] + fib[-2])    return fibalist = gen_fib()  # 列表print(alist)print([i * 2 for i in alist])

函数需要的数据应该通过参数进行传递。如果在函数中使用了input(),表示数据只能通过键盘输入获得,这样就把数据获取的渠道限定死了。

def gen_fib(n=10):    fib = [0, 1]    for i in range(n - 2):        fib.append(fib[-1] + fib[-2])    return fibalist = gen_fib()print(alist)print([i * 2 for i in alist])print(gen_fib(5))

模块

模块就是一个python程序文件。模块名是文件名去除.py后的部分。自定义的模块不要和系统模块重名。

每个模块都有一个特殊的变量叫__name__,它的值有两个,一个是__main__,另一个是模块名。当程序文件直接运行的时候,它的值是__main__;当它被import导入时,间接运行,它的值是模块名。

[root@room8pc16 day04]# cat foo.py print(__name__)[root@room8pc16 day04]# cat bar.py import foo[root@room8pc16 day04]# python3 foo.py __main__[root@room8pc16 day04]# python3 bar.py foo

转载地址:http://jhnwi.baihongyu.com/

你可能感兴趣的文章
SpringCloud微服务应用入门
查看>>
SpringCloud之session共享
查看>>
Springboot集成Shiro实现认证
查看>>
Spring、Spring MVC和MyBatis编程式集成示例
查看>>
在Springboot应用使用redis缓存
查看>>
Spring入门
查看>>
Idea提示键和热部署配置以及git使用
查看>>
Deepin+Vscode搭建vue.js项目及Git操作
查看>>
基于Spring Security前后端分离式项目解决方案
查看>>
Vue3.0+Vite2.0项目框架搭建(一)
查看>>
Vue3.0+Vite2.0项目框架搭建(二)- 引入axios
查看>>
Vue3.0+Vite2.0项目框架搭建(三)- 引入Element3
查看>>
使用Vue CLI v4.5(+)搭建Vue3.0项目框架搭建
查看>>
Java集合框架
查看>>
线程协作与生产者消费者问题
查看>>
Vue入门
查看>>
非starter方式实现springboot与shiro集成
查看>>
Starter方式实现Springboot与Shiro集成
查看>>
移动端多页面应用(MPA)的开发(一)
查看>>
移动端多页面应用(MPA)的开发(二)
查看>>