Python入门

Python的特点

  • 高级:有高级的数据结构,缩短开发时间与代码量
  • 面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力
  • 可升级:提供了基本的开发模块,可以在它上面开发软件,实现代码的重用
  • 可扩展:通过将其分离为多个文件或模块加以组织管理
  • 可移植性: python是用C写的,又由于C的可移植性, 使得 pythonANSI可以运行在任何带有编译器的平台上
  • 易学: python关键字少、结构简单、语法清晰
  • 易读:没有其他语言通常用来访问变量、定义代码块 和进行模式匹配的命令式符号
  • 内存管理器:内存管理是由 python解释器负责的

安装python

yum install -y gcc gcc-c++ zlib-devel openssl-devel readline-devel libffi-devel sqlite-devel tcl-devel tk-devel  #安装依赖包
tar -xf Python-3.6.7.tgz
cd Python-3.6.7
./configure --prefix=/usr/local/
make && make install

Python运行方式

1)交互解释器

] python3
>>>    #此时进入了python解释器
>>> exit()  #退出,也可以ctrl+d

2)文件形式

] python hello.py   #指定解释器
或者:
] chmod +x hello.py  
] ./hello.py   #赋予执行权限再执行

Python语法格式

1)语句块缩进

  • 完全靠缩进表达代码逻辑,而不适使用大括号
  • 缩进表达一个语句属于哪个代码块
  • 采用4个空格(pycharm中一个tab为4个空格)
  • 缩进相同的一组语句构成一个代码块,称之代码组
  • 首行以关键字开始,以冒号:结束,该行之后的一行或多行代码构成代码组
  • 如果代码组只有一行,可以将其直接写在冒号后面,但是这样的写法可读性差,不推荐

2)注释和续行

  • 首要说明的是:尽管Python是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释
  • 和很多UNIX脚本类似,python注释语句从#字符开始,ctrl+/可以将选中行全部注释
  • 注释可以在一行的任何地方开始,解释器会忽略掉该行#之后的所有内容
  • 一行过长的语句可以使用反斜杠\分解成几行

3)同行多个语句

  • 分号;允许你将多个语句写在同一行上
  • 但是些语句不能在这行开始一个新的代码块
  • 因为可读会变差,所以不推荐使用

输出语句

  • 输出使用print函数,在python中函数调用必须用小括号。
  • 如果输出字符串,则必须加引号,单双引号没有区别
print('Hello World!')
print(100)     # 打印数字
print(hello)   # 错误,因为hello没有加引号,python认为它是一个名字,可能是函数名或是变量名等名字,但是名字不存在
print('hao', 123)  # 由于上方代码有错误,错误代码之后的代码不会被执行

输入语句

# 从键盘获取用户输入,使用input()函数
uname = input('username: ')  # ()中的字符串是屏幕提示语
print(uname)
uname = input('请输入用户名: ')
print('欢迎'+uname+'用户!')

执行:

请输入用户名:  nia
欢迎nia用户!
# 字符串中有变化的内容,可以使用这种形式:'%s: %s' % ('name', 20)
# %s是占位符,用字符串外面()中的相应内容替代,当只有一个%s的时候,()可以>不写
uname = input('请输入用户名: ')
print('%s%s%s' % ('欢迎用户', uname, '!'))

执行:

请输入用户名: dc
欢迎用户dc!

变量

  • 变量名称约定
    • 第一个字符只能是大小写字母或下划线
    • 后续字符只能是大小写字母或数字或下划线
    • 区分大小写
  • python是动态类型语言,即不需要预先声明变量的类型
  • 推荐采用的全名方法
    • 变量名全部采用小写字母
    • 简短、有意义
    • 多个单词间用下划线分隔
    • 变量名用名词,函数名用谓词(动词+名词)
    • 类名采用驼峰形式
  • 变量使用之前必须定义并赋值

变量赋值

  • 变量赋值:变量赋值是一个自右向左的运算过程。将=号右边表达式计算出结果,
    赋值给左边的变量
>>> a = 10
>>> a = a + 5  # 取出a的值加上5,再赋值给变量a
>>> a += 5     # 以上语句的简写
>>> a++        # 语法错误
>>> ++a        # 没有错误,也不会自增,它是正正为正的意思
>>> import this  # 显示python之禅
The Zen of Python, by Tim Peters

Beautiful is better than ugly.     # 美胜丑
Explicit is better than implicit.  # 明胜暗
Simple is better than complex.     # 简胜繁
... ...

运算符

  • 标准算术运算符
    + - * / //(取整数商) % (取余) **(幂运算)
>>> divmod(5, 3)   # 同时得到商和余数
(1, 2)
>>> a, b = divmod(5, 3)   # 商和余数分别赋值
>>> a
1
>>> b
2
  • 比较运算符
    < <= > >= == !=
>>> 10 < 20 < 30   # python支持连接比较
True
>>> -10 < 20 > 15   # 可读性不好,不推荐
True
>>> -10 == -10       # 判断是否相等,必须是==
True
>>> 10 != 10       # 判断是否不等
False
  • 逻辑运算符
    and not or
>>> 10 > 9 and 9 < 12   # 只有and两边都为真,最终为真
True
>>> 10 > 9 and 9 < 2
False
>>> 10 > 9 or 2 > 10    # or两边有一侧为真,最终为真
True
>>> 10 > 20 or 2 > 10
False
>>> not 10 > 20         # not取反,将真变假,假变真
True
>>> not 10 > 2
False
>>> not (10 > 2)        # 加括号增加可读性
False

数据类型

Python的数据属于某一种类型,相同类型的数据可以做运算,不同类型的数据运算会报错

# input()函数读入的数据一定是字符类型
>>> n = input('number: ')
number: 10
>>> n + 5        # 错误,字符串不能和数字相加
>>> int(n) + 5   # int函数将字符串'10'转成数字10
15
>>> n + str(5)   # str函数可以将各种对象转成字符串
'105'

1)数字

基本数字类型
  • int:有符号整数
  • bool:布尔值
    • False: 0
    • True: 1
  • float:浮点数
  • complex:复数
数字表示方式
  • python默认以十进制数显示(没有前缀)
  • 数字以0o或0O开头表示为8进制数
  • 数字以0x或0X开头表示16进制数
  • 数字以0b或0B开头表示2进制数

2)字符串

  • python中字符串被定义为引号之间的字符集合
  • python支持使用成对的单引号或双引号无论单引号,还是双引号,表示的意义相同
  • python还支持三引号(三个连续的单引号或者双引号),可以用来包含特殊字符
  • python不区分字符和字符串
>>> s1 = """hello
... nice
... ban"""
>>> print(s1)
hello
nice
ban
>>> s1
'hello\nnice\nban'
>>> s2 = "tom\njerry\npeppa"
>>> print(s2)
tom
jerry
peppa
字符串操作
>>> s1 = 'python'
>>> len(s1)     # 求长度
6
>>> s1[0]       # 下标从0开始
'p'
>>> s1[5]
'n'
>>> s1[6]       # 报错,下标没有6
>>> s1[-1]      # 下标为负,表示从右开始取
'n'
>>> s1[-6]
'p'
>>> s1[2:4]     # 取切片,起始下标包含,结束下标不包含
'th'
>>> s1[2:6]     # 取切片时,下标越界不报错
'thon'
>>> s1[2:6000]
'thon'
>>> s1[2:]      # 结束下标不指定,取到结尾
'thon'
>>> s1[:2]      # 起始下标不指定,从开头取
'py'
>>> s1[:]
'python'
>>> s1[::2]     # 2表示步长值
'pto'
>>> s1[1::2]
'yhn'
>>> s1[::-1]    # 步长为负,表示从右向左取
'nohtyp'

>>> 't' in s1   # 't'在s1中吗?
True
>>> 'th' in s1  # 'th'在s1中吗?
True
>>> 'to' in s1  # 'to'在s1中吗?
False           # to在字符串中不连续,为假
>>> 'to' not in s1  # 'to'不在s1中吗?
True
>>> 'hello' + 'world'   # 字符串拼接
'helloworld'
>>> '*' * 50    # 字符串重得50次
'**************************************************'
>>> s1 * 5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章