Python基础介绍
输出
打印第一个程序:
交互式解释器
[root@localhost ~]# ipython
Python 3.6.8 (default, Aug 7 2019, 17:28:10)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: print("Hello World!")
Hello World!
In [2]:
第一个程序:
[root@localhost python]# cat first.py
#!/usr/bin/env python3 #python解释器
# -*- coding: utf-8 -*- #指定字符编码,默认就是UTF-8
print("hello world!")
[root@localhost python]# chmod a+x first.py
[root@localhost python]# ./first.py
hello world!
注释
在你写代码时,有些代码写的比较经典,或者过于复杂,你一眼看不出来,怎么办,比如在文言文中,有些出处或者偏难怪的文字,你是不是不理解?那么怎么办呢?是不是就得有简单说明。
注释就是做这个的,我们来看一下怎么用
单行注释:
多行注释:’’’ ‘’’ 或者 “”” “””
# 这个就是给这一行进行注释,注释后的代码不会执行
'''
这种的是多行注释, 什么是多行注释啊,其实很简单就是咱们注释的内容可以
进行换行
'''
看个示例:
# print('hello') 这样就是对这个代码进行注释,并且这个代码不会执行
'''
print(1)
print(2)
这种就是多行注释,这样的语句也不会执行
'''
操作符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算.
今天我们暂只学习 算数运算、比较运算、逻辑运算、赋值运算、成员运算
算数运算
以下假设变量:a=10,b=20
比较运算
只会返回布尔值
以下假设变量:a=10,b=20
赋值运算
以下假设变量:a=10,b=20
逻辑运算
针对逻辑运算的进一步研究:
在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系:
( )>not>and>or,同一优先级从左往右计算。
例题:
判断下列逻辑语句的True,False。
x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
3>4 or 4<3 and 1==1
1 < 2 and 3 < 4 or 1>2
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
例题:求出下列逻辑语句的值。
8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
成员运算
in 和 not in :
判断子元素是否在原字符串(字典,列表,集合)中:
例如:
print('喜欢' in 'dkfljadklf喜欢hfjdkas')
print('a' in 'bcvd')
print('y' not in 'ofkjdslaf')
变量
引子:
比如我想让你计算一下下面算式的结果:
1 + 2 + 3 + 4 + 5
你直接打印就可以了:
print(1 + 2 + 3 + 4 + 5)
但是我想让上面的结果 乘以 3怎么做?有人说很简单:
print(1 + 2 + 3 + 4 + 5)
print((1 + 2 + 3 + 4 + 5)*3)
然后我想让你得到的这个中间结果在加上100:
print(1 + 2 + 3 + 4 + 5)
print((1 + 2 + 3 + 4 + 5)*3)
print(((1 + 2 + 3 + 4 + 5)*3)+100)
我还想让你的这个中间结果除以4:
print(1 + 2 + 3 + 4 + 5)
print((1 + 2 + 3 + 4 + 5)*3)
print(((1 + 2 + 3 + 4 + 5)*3)+100)
print((((1 + 2 + 3 + 4 + 5)*3)+100)/4)
这样写麻烦么? 当然非常麻烦,如何改进呢?我们初中的时候就学过未知数这个概念了,此时我们可否引入呢?
比如:
x = 1 + 2 + 3 + 4 + 5
y = x * 3
z = y + 100
v = z / 4
如果你这样完成的话是不是非常清晰明了,上面例子中的x,y,z,v在python中就称为变量。
什么是变量?
变量: 就是用一些简单的英文字母代指程序运行的复杂的中间结果,以便后续代码使用。变量是表示(或指向)特定值的名称。可以说就是对内存空间的引用
In [1]: name = 'lisi'
In [2]: id(name)
Out[2]: 140430805259744
- 这个知识点用在哪呢?
变量在我们后期中经常会被使用 - 变量如何使用?
name = "meet"
这样就是在定义一个变量,我们具体说一下定义变量
name 是一个变量名
= 是一个赋值操作 赋值就是将值交给name
'Meet' 是一个值
变量的作用:昵称,就是代指内存中某个地址中的内容
我们定义变量的时候,可以任意起名字吗? 应该是有规则的吧,我们来看看变量定义的规则
变量的定义规则
- 动态语言: 不需要预先声明变量类型,变量的类型在赋值那一刻被初始化
- 变量名由字母,数字,下划线组成
- 变量名禁止使用数字开头
- 禁止使用Python中的关键字以及内置函数的名字
关键字如下:
[‘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’]
```
- 不建议使用中文和拼音
- 变量名要具有意义
- 变量名区分大小写
- 推荐写法:
- 驼峰体: AgeOfBoy = 56
- 下划线:age_of_boy = 56
这是两种写法,你们觉得那种的比较清晰.是不是第二种看着比较清晰,第一种猛的一看还以为是AngelaBaby呢
<a name="63d95377"></a>
#### 变量的赋值
在python 中我们把变量一般都比喻成便利贴,这些标签在内存中是唯一性的。
lux = ‘鲁迅本人’ name = ‘太白金星’
此时的lux变量指向就是’鲁迅本人’,而name变量指向的就是’太白金星’
![](https://s2.ax1x.com/2019/11/06/MPodT1.png#crop=0&crop=0&crop=1&crop=1&id=r5Ub1&originHeight=382&originWidth=601&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
name1 = ‘太白金星’ name2 = name1 name3 = name2 print(name1,name2,name3)
![](https://s2.ax1x.com/2019/11/06/MPo2md.png#crop=0&crop=0&crop=1&crop=1&id=CHgqS&originHeight=376&originWidth=601&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
<a name="58d260d0"></a>
#### 变量的小高级
age1 = 18 age2 = age1 age1 = 12 age3 = age2 print(age1,age2,age3)
我们先来分析一下这个结果是怎样的,在运行看结果是否和你想的一样
如果结果和你想的不一致,你需要注意了.咱们代码的运行是从上至下的执行,并且在内存中只能用一个名字相同的便利贴.
![](https://s2.ax1x.com/2019/11/06/MPTJ4P.gif#crop=0&crop=0&crop=1&crop=1&id=UOIB7&originHeight=789&originWidth=1665&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
age = 12 age = 12 + 1 age1 = age + 1 print(“我今年:”,age1) name1 = ‘barry’ name2 = name1 name1 = ‘wusir’ name3 = name2 打印name1,name2,name3分别对应的值是什么?
通过上边的小高级和练习我们可以得出一个宗旨,代码是从上向下执行,并且便签只能有一份,相当于一个变量名只能代指一个值
<a name="7cb3a749"></a>
## 常量
常量就是在python代码中不能被改变的变量,在其他语言中比如C语言中,如果一个变量设置成常量,那么这个常量肯定就不能改变,只要改变就会报错。但是python中虽然没有这样的规定,但是为了与其他语言保持一致,将全部大些的变量称为常量,目的就是让开发者看到之后告之其不要轻易改变。量往往是以大写的形式放在文件的最上面,比如:<br />一般的身份证号,生日,以及文件的路径等等都要设置成常量。
BITRH_OF_CHINA = 1949 FILE_PATH = ‘d:/test1.py’
<a name="185f7bf6"></a>
## 数据类型
<a name="60e55e3b"></a>
#### 数据类型初识
什么是数据类型?
我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东西,其实就是对常用的各种数据进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数据类型有多种,今天我们暂只讲3种, 数字、字符串、布尔类型
常见数据类型:
- Number 数值型
- Bool 布尔型
- String 字符串
- List 列表
- Tuple 元组
- Dictionary 字典
- Set 集合
<a name="1b786285"></a>
#### int是整型
也就是我们从小就接触的数学中的整数,整型在计算机中运于计算和比较
在32位机器上int的范围是: -2**31~2**31-1,即-2147483648~2147483647
在64位机器上int的范围是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807
目前这些数字已经够你用了吧. 注意这些是整数.
- 整型
num1 = 2 num2 = 3 print(num1 + num2)
结果: 5
整型就和我们学的数学一样可以进行加减乘除
<a name="cc4dd1da"></a>
#### 字符串
str是字符串也就是我们从小就接触的中文,如果我们在程序中直接把中文写入,程序是不能分辨这是个什么鬼东西.所以我们要遵循一种规则让计算机能够识别,这个规则就是只要是用引号引起来就是字符串
在Python中,凡是用引号引起来的,全是字符 .
字符 可以用单引号,双引号,或者三引号引起来,没有什么区别,只是一些特殊的格式需要不用的引号 比如:
msg = “My name is barry , I’m 22 years old!” 这个就需要单双引号配合。 msg =””” 今天我想写首小诗,
来歌颂我的同桌,
你看他那乌黑的短发,
好像一只炸毛鸡。
“””
想写多个内容还需要使用换行的时候,就需要三引号。
数字类型可以做运算,字符串可以吗??
- 字符串加法
字符串的拼接
s1 = ‘a’ s2 = ‘bc’ print(s1 + s2)
- 字符串乘法
strint name = ‘坚强’ print(name8)
<a name="06e1ad91"></a>
#### 布尔值
bool是布尔值,布尔值中一共分为俩个状态
True 就是真
False 就是假
python里 True用数字 1 表示,False用数字 0 表示
非0 非空即真(空格不是空,这里的0是指数字)
例如我们想让计算机帮我们计算一下两个数的比较大小
print(3>7)
结果: False
print(7>3)
结果: True
我们现在简单的认识了这三个基础数据类型,接下来我们学习一下一个经常接触的功能:用户输入。
<a name="e47d59b1"></a>
## 输入
咱们在登录一些网页和QQ的时候是不是常常会让咱们输入账户或者密码的情况,
这样的情况在程序中会大量的存在,接下来咱们自己实现一个登录时候要输入的功能
s = input(‘请输入你喜欢的东西’)
input就是固定格式,他是输入的意思 括号里边的内容是提示是给用户看的提示语句,用户输入的内容让input接收了然后赋值给了字符串s
<a name="5d6d07df"></a>
#### 输入用户名
!/usr/bin/env python
-- coding:utf-8 --
将用户输入的内容赋值给name变量
python2的写法 name = raw_input(“请输入用户名:”) print name
python3的写法 name = input(“请输入用户名:”) print(name)
需要注意的是input程序交互获取到的内容都是字符串,我们看下面的简单示例:
num = input(‘请输入数字:’) print(num + 5)
结果:
请输入数字:6
Traceback (most recent call last):
File “D:/python_object/test.py”, line 350, in
报错了,提示我们类型错误,数字和字符串是不能相加的.可是我们输入的明明是数字啊.其实我们看着输入的是<br />数字,但是input获取到的都是字符串
这个知识点用在哪里?
在工作中如果需要用户输入一些个人信息比如账号,密码,性别,爱好等,即是你需要将你输入的信息传递给程序当中,那么就需要用到用户交互input。
**注意**
在Python2 中使用raw_input 获取的都是字符串 在Python3 中使用input 获取的都是字符串
<a name="1c0590ec"></a>
#### 课上练习:
让学生输入姓名,性别,年龄,最后以这样的形式打印出来。
‘我叫:xxx 性别:x 今年:xx岁’
name = input(‘请输入姓名:’) age = input(‘请输入年龄:’) sex = input(‘请输入性别’) print(‘我叫:’+name+’姓名:’+age+’年龄’+sex)
<a name="870a51ba"></a>
## 函数
如何计算2的8次方呢?
In [45]: 2 ** 8
Out[45]: 256
但是我们也可以这样做
In [46]: pow(2,8)
Out[46]: 256
这个pow()就是函数。函数犹如小型程序,可用来执行特定的操作。Python提供了很多函数,可用来完成很多神奇的任务。实际上,你也可以自己编写函数,因此我们通常将pow等标准函数称为内置函数。
常用的几个简单小函数
- print() 输出
- input() 输入,输入数据的类型为字符串
- bin() 0b
- oct() 0o
- hex() 0x
- int() 将一个对象转变成整型
- float() 将一个对象转变成浮点型
- type() 查看对象数据类型
- id() 查看对象的id(和内存位置相关,内存地址不变则id值不变)
- bool() 求一个对象的布尔值 (非空非0即True)
<a name="fac54c34"></a>
## 模块
可将模块视为扩展,通过将其导入可以扩展Python功能。
In [1]: import os #导入模块os
In [2]: os.system(‘mkdir /root/test_python’) #使用其功能
```