python基础语法

19 篇文章 2 订阅

python语法基础

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

输入输出

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

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

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

变量赋值

  • 变量赋值操作自右向左进行,将=右边的表达式计算出结果,赋值给=左边的变量
>>> a = 5 + 5
>>> a = a + 5
>>> a += 5
  • 变量在使用之前必须先赋值,否则出现NameError
>>> n = n + 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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 "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> s1 = 'Python'
s1
不可变内存python
alist
可变内存[1, 2, 3]

按访问模型分类

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

判断语句的语法

if 表达式1:
    语句块1
elif 表达式2:
    语句块2
else:
    语句块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 fib

alist = 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 fib

alist = 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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值