Python从基础到精通day1

Python介绍、数据类型概述、环境使用:

一、python简介:
python简介
python的诞生
创始人:Guido van Rossum(荷兰人)
时间:1989年圣诞节期间
地点:阿姆斯特丹
python的命名:源于Guido是一个喜剧团Monty python的粉丝
应用领域:

python优缺点:

优点:
面向对象(C++/JAVA/PYTHON/SWIFT/C#)
免费
可移植
可混合编程
简单易学易用
应用邻域广泛
开源

缺点:
与C/C++/go相比,执行速度不够快
开源

python的官网:
www.python.org
通过此网站可以查看语言文档信息

废话不多少,直接开启我们的Python之旅。
首先运行python3,这里我提前做了python的环境,搭建环境我就不写了。

一. Print语句
[root@python day1]# python3

>>> print ('hello world!')
hello world!
在Python中,字符串必须放到引号中。
如果没有引号表示一个名字,如函数名 变量名,如果该名字不存在则报错
>>> print ('hao','123')   打印一项字符串和数字,输出时默认各项之间用空格分隔
hao 123
>>> print ('hao','123',sep='***')   通过sep指定分隔符,分隔符任意
hao***123
>>> 

二.input语句
#用于读取用户键盘输入,读入的内容一定是字符类型的

>>> user = input("username:")  username:是屏幕提示,user是变量
username:tom
>>> print(user) 在Python中变量直接调用不需要加$
tom
>>> n = input("number: ")
number: 10
>>> print(n)
10
>>> n + 5   字符类型不能和数字类型做运算
#通过input用户写进来的数据都是**字符类型!**
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int
>>> type(n)   查看n的数据类型
<class 'str'>   str表示字符类型,英文单词string
>>> int(n) + 5 int函数将字符串转换成相应的整数数字
15

字符串格式化的基本形式:
使用()中的内容按顺序依次替换,如果只有一个%s 可以不写括号
>>> '...%s...%s...' % ()  标准格式方便记忆
>>> 'Hello %s' % 'tom'
'Hello tom'
>>> '%s is %s years old' % ('tom',18)
'tom is 18 years old'
>>> 

三. Python变量
什么是变量:可以变化的量,不能变量的量叫字面量literal。
变量的命名规定

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

推荐的命名方式

  • 有意义
  • 简短
  • 变量名和函数名全部采用小写
  • 变量名和函数名各单词用下划线分开,py_str

变量在使用之前,必须赋初值,如果使用不存在的名称会发生NameError异常
变量赋值,自右向左运算。
将等号右边的表达式计算出一个结果,赋值给左侧的变量

变量赋值,自右向左运算. 将等号右边的表达式计算出一个结果,赋值给左侧的变量
>>> a = 5 + 5   
>>> a 
10

#数值变量支持自增,自减等运算
>>> a = a + 1
>>> a
11

#以上写法可以简写为:
>>> a += 1
>>> a
12

四. 运算符

标准算数运算符
 +  -  *  /  // % **
比较运算符
>  <  >=  <=  !=  ==
逻辑运算符
and  not  or
  • 比较结果为真Ture或者假 False
>>> 3 != 3     # 3不等3吗?
False
>>> 5 >= 5
True
# python支持连续比较
>>> 20 > 15 > 10
True
>>> 15 > 10 < 20   # 相当于15 > 10 and 10 < 20
True

逻辑运算符

  • and两边的结果都为真,最终才为真;有一边是假最终为假
  • or两边的结果都为假,最终才为假;有一边为真,最终为真
  • not是单目运算符,它将假变成真,真变为假
>>> 5 > 3 and 5 > 2
True
>>> 5 > 3 and 5 > 7
False
>>> 5 > 3 or 5 > 2
True
>>> 5 > 3 or 5 > 7
True
>>> not 5 > 3
False
>>> not 5 > 7
True
>>> 

数据类型

数字

  • 没有小数点的整数
  • 有小数点的浮点数
  • 布尔值True的值为1,False值为0
>>> True + 2
3
>>> False * 2
0
# 整数前面没有前缀,表示10进制数,python默认都以10进制输出
>>> 11
11
# 8进制数以0o或0O开头
>>> 0o11
9
# 16进制数以0x或0X开头
>>> 0x11
17
# 2进制数以0b或0B开头
>>> 0b11
3
# 将16进制转成10进制
>>> 0x231   # 2 * 16 * 16 + 3 * 16 + 1
561
>>> 0o82   # 报错,8进制数没有8

字符串

  • 通过引号引起来的字符集合,它总是表示字面本身含义。
  • 在python中,单双引号没有区别。
  • python支持三引号(3个连续的单引号或双引号),保留用户的输入样式
>>> users = """Tom
... Kenji
... jerry"""
>>> print(users)
Tom
Kenji
jerry
>>> users   # 在python解释器中,不用print也可以回显。程序文件输出必须print
'Tom\nKenji\njerry'

>>> names = 'bob\n小明\n小红'
>>> print(names)
bob
小明
小红

# 字符串使用+进行拼接 
>>> py_str = 'python'
>>> len(py_str)  使用len函数统计变量占用的字符长度
6
>>> py_str + 'hello'
'pythonhello'
>>> py_str + ' hello'
'python hello'
# 字符串通过*实现重复
>>> '*' * 30
'******************************'
>>> '=' * 50
'=================================================='
>>> 't' in py_str    # 't'在字符串中吗?
True
>>> 'th' in py_str   # 'th'在字符串中吗?
True
>>> 'to' in py_str   # 'to'在字符串中吗?
False
>>> 'to' not in py_str   # 'to'不在字符串中吗?
True

通过下标取值
>>> py_str[0]    # 取出第一个字符,下标为0
'p'
>>> py_str[6]    # 取出第7个字符,报错,没有第7个字符
>>> py_str[5]    # 取出第6个字符
'n'
>>> py_str[-1]   # 下标为负,表示从右向左取
'n'
>>> py_str[-6]
'p'

取切片,起始下标包含,结束下标不包含 
>>> py_str[2:4]
'th'
>>> py_str[2:600]   # 取切片时,下标越界不报错
'thon'
>>> py_str[2:]     # 结束下标不写,表示取到结尾
'thon'
>>> py_str[:2]     # 起始下标不写,表示从开头取
'py'
>>> py_str[:]      # 从开头取到结尾
'python'
>>> py_str[::2]    # 从开头取到结尾,步长为2,默认步长值为1
'pto'
>>> py_str[1::2]   # 从第一位开始取,步长为2
'yhn'
>>> py_str[::-1]   # 步长为负,表示从右向左取
'nohtyp'

列表

  • 类似于其他语言的数组
>>> l1 = [10, 20, 'tom', 'jerry']
>>> len(l1)
4
>>> l1 + 30   # 不能将列表与数字进行拼接
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
>>> l1 + [30]
[10, 20, 'tom', 'jerry', 30]
>>> l1
[10, 20, 'tom', 'jerry']
>>> l1 * 3
[10, 20, 'tom', 'jerry', 10, 20, 'tom', 'jerry', 10, 20, 'tom', 'jerry']
>>> 'tom' in l1
True
>>> l1[-2]
'tom'
>>> l1[2:]
['tom', 'jerry']

列表可变,可以改变它的值,可以添加新值
>>> l1[0] = 100
>>> l1
[100, 20, 'tom', 'jerry']
>>> l1.append(200)   # 向列表追加新值
>>> l1
[100, 20, 'tom', 'jerry', 200]
>>> l1.remove(200)    # 删除列表中的值
>>> l1
[100, 20, 'tom', 'jerry']
>>> 

说明:

  • 变量代表的是某个数据。所以变量的语法形式,就是变量代表的数据的语法形式
>>> py_str
'python'
>>> py_str[0]
'p'
>>> 'python'[0]
'p'
>>> l1
[10, 20, 'tom', 'jerry']
>>> [10, 20, 'tom', 'jerry'][:2]
[10, 20]
>>> l1[:2]
[10, 20]

>>> l2 = [['tom', 20], ['jerry', 18]]
>>> l2[0]
['tom', 20]
>>> l2[0][-1]   先从l2中取出下标为0的值,在从被取出值中取下标为-120

元组

  • 相当于是不可变的列表
>>> t1 = (100, 20, 'tom', 'jerry', 200)
>>> len(t1)
5
>>> t1[-1]
200
>>> t1[2:4]
('tom', 'jerry')
>>> t1 + (10, 20)
(100, 20, 'tom', 'jerry', 200, 10, 20)
>>> t1 * 2
(100, 20, 'tom', 'jerry', 200, 100, 20, 'tom', 'jerry', 200)
>>> 100 in t1
True
>>> t1[0] = 10000   # 报错,元组不可变

字典

  • 由键值(key: val)对构成的数据类型
  • 字典的键不能重复
  • 字典没有顺序
  • 字典通过key取出val
>>> d1 = {'name': 'Mr.Niu', 'age': 20}
>>> len(d1)
2
>>> 20 in d1     # 20是字典的key吗?
False
>>> 'age' in d1
True
>>> d1['name']
'Mr.Niu'
>>> d1['age']
20
>>> d1['age'] = 21   # key已在字典中,修改它的值
>>> d1
{'name': 'Mr.Niu', 'age': 21}
>>> d1['email'] = '[email protected]'  # key不在字典中,则加新值
>>> d1
{'name': 'Mr.Niu', 'age': 21, 'email': '[email protected]'}

数据类型的分类

按存储模型分类
  • 标量:数字、字符串。不能包含其他数据
  • 容器:列表、元组、字典
按更新模型分类
  • 不可变:数字、字符串、元组
  • 可变:列表、字典
按访问模型分类
  • 直接访问:数字
  • 顺序访问:字符串、列表、元组
  • 映射访问:字典,通过key和values的方式取值
>>> s1 = 'python'
>>> l1 = [10, 20, 30]
>>> l1[0] = 1000
>>> l1
[1000, 20, 30]
>>> s1[0] = 'P'    # 报错,因为字符串不可变
>>> s1 = 'Python'  # 将s1整体重新赋值
>>> l2 = l1
>>> l2
[1000, 20, 30]
>>> l1
[1000, 20, 30]
>>> l2.append(100)
>>> l2
[1000, 20, 30, 100]
>>> l1
[1000, 20, 30, 100]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章