python基础(介绍、数据类型、运算符、随机函数)

部分参考于:python运算符

一.python介绍

创始人

  • 吉多范罗苏姆

python应用

  • 云计算
  • web开发
  • 科学运算、人工智能:numpy,scipy

语言分类:

编译型与解释型

编译型:使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。(C、C++、Objective)
解释型:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。(python等)

静态语言与动态语言

静态类型语言:在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言:在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
python属于动态,不用定义变量数据类型。

强类型定义语言与弱类型定义语言

强:强制数据类型(java、python)
弱:一个变量可以赋值不同数据类型(VB、Perl、C)

python优缺点:

优点:

  1. “明确、优雅、简单”
  2. 开发效率高
  3. 高级语言
  4. 可移植性
  5. 可扩展性
  6. 可嵌入性

缺点:

  1. 速度慢
  2. 代码不能加密
  3. 线程不能利用多CPU

二.python学习

1.print()函数

在控制台打印信息

2.注释:

单行注释:

#单行注释

多行注释

在运行的过程中不会被执行

'''
多行注释
'''

"""
这也是多行注释
"""

3.input()函数

作用:从外部获取值
用法:括号中可以提供提示信息
返回值为字符串类型
>>>a=input()
你好明天
>>>a
‘你好明天’
>>>a=input(“please enter enter school info:”)
please enter enter school info:city colleage
>>>a
‘city colleage’
>>>type(a)

4.python运行的三种方式:

解释器

脚本运行

IDE

  • pycharm,sublime,VS Code,Atom

5.常见的数据类型

  • 数字(number)
    • 整型(int)
    • 浮点型(float)
    • 布尔型(bool)
    • 复数(complex)
  • 字符串(string)
  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

6.变量和常量

变量

概念

  • 程序可操作的存储区的名称;
  • 程序运行时存储区中能够改变的数据;
    每个变量都有特定的数据类型

作用

  • 将数据存储到内存

变量的定义

  • 命名

    • 规则:必须是字母、下划线、数字组合

    • 不能以数字开头

    • 不可以是python中的关键字

      关键字列表:
      >>>import keyword
      >>>keyword.kwlist
      [‘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’]

  • 注意

    • 见名知意
    • 区分大小写
    • 在python中,单下划线和双下划线开头的变量有特殊用途,不推荐用作变量名
  • 类型测试 type()

    type(val_name)
    

    内存地址 id()

    id(val_name)
    

常量

  • 不变的量
    pi,3.1415926

通常大写,如:

	PI=3.1415926

数字

整型(int)

32bit,取值范围:-231~231-1
64bit,取值范围:-263~263-1

浮点型

带有小数点的数字

布尔型

  • true
  • false

复数

  • 实部
  • 虚部
  • 共轭复数(cpx.conjugate())

7.常见的数学函数

函数名 描述
abs(x) 绝对值
pow(x,y) x y x^y xy
round(x,[n]) 返回四舍五入的值如果给出n,表名四舍五入后的小数点位数
math.exp() 返回e的x次幂
math.fabs(x) 返回为绝对值,类型为浮点数
math.ceil(x) 返回数字的上入整数
math.floor(x) 返回数字的下舍整数
math.log(x,[y]) 单参数,默认以e为底;双参数,以[y]为底
math.modf(x) 返回浮点数的小数部分和整数部分
math.sqrt(x) 平方根
m a x ( x 1 , x 2 , . . . ) max(x1,x2,...) max(x1,x2,...) 返回最大值
m i x ( x 1 , x 2 , . . . ) mix(x1,x2,...) mix(x1,x2,...) 返回最小值

8.表达式与运算符

表达式

  • 由变量,常量和运算符组成的式子,称为表达式

运算符

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符
  • 成员运算符
  • 身份运算符
  • 位运算符

(1)python算术运算符

运算符 描述 实例
+ 相加、拼接 a + b
- 相减、求差集 a - b
* 相乘、重复 a * b
/ 相除 a / b
** 幂运算 a * * b
% 取模(余数) a%b
// 取整数(商) a//b

%、//:
>>>23//4
5
>>>23%4
3
>>>divmod(23,4)
(5, 3)

(2)python比较(关系)运算符

运算符 描述
== 等于,比较对象是否相等
!= 不等于,比较两个对象是否不相等
<> 不等于,比较两个对象是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于

(3)python赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c=a+b,将a+b的运算结果赋值为c
+= 加法赋值运算符 c+=a即c=c+a
-= 减法赋值运算符 c-=a即c=c-a
*= 乘法赋值运算符 c *= a 即 c = c * a
/= 除法赋值运算符 c /= a 即 c = c / a
%= 取模赋值运算符 c %= a 即 c = c % a
**= 幂赋值运算符 c*= a 即 c = c * a
//= 取整除赋值运算符 c //= a 即 c = c // a

(4)python位运算符

按位运算符是把数字看成二进制来计算的

运算符 描述
& 按位“与”,同为1才为1,否则为0
| 按位“或”,有1即为1
^ 按位“异或”,不同为1
~ 按位“取反”,~x得到-x-1
<< 左移运算符
>> 右移运算符

(5)python成员运算符

测试是否包含某个成员,一般测试字符串,列表,元素

运算符 描述
in 如果存在于指定序列中,返回True;否则,False
not in 如果不存在于指定序列中,返回True;否则,False

>>>x=“a”
>>>y=“dahgdjdl”
>>>x in y
True

(6)python身份运算符

用于比较两个对象的存储单元:id()

运算符 描述
is 判断两个标识符是不是引用同一个对象
not is 判断两个标识符是不是引用同一个对象

>>>a=‘ab’
>>>b=‘ab’
>>>a is b
True

(7)python逻辑运算符

运算符 逻辑表达式 描述
and x and y 布尔“与”
or x or y 布尔“或”
not not x 布尔“非”

9.数据类型的强制转换

强转类型 描述
int(x,[base]) 将x强制转化为整型。如果x是字符串,需要指定base基数
float(x) 将x转换为浮点型
str(x) 强转为字符串
repr(x) 讲对象转化为表达式字符串
list(x) 将序列转变成一个列表,参数可为元组、字典、列表
tuple(x) 参数可以是元组、列表或者字典
dict(x)
set(x) 将一个可以迭代对象转变为可变集合,并且去重复
chr(x) 将整数转化为字符
ord(x) 将字符转化为数值
bin(x) 转换成二进制
oct(X) 转换成八进制
hex(x) 转换成十六进制

10.随机函数

导入这个模块

import random

random模块的常见功能

(1)random.random()

  • 用来生成一个0-1的随机浮点数[0,1)
import random
for i in range(20):
    a=random.random()
    print(a,end=" ")
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
0.13914489275725517 0.11576435460538337 0.6345622199958998 0.7769719673041933 0.21451025048469674 0.08878477900230608 0.6294518265088199 0.984627259905347 0.18917988605687075 0.6336157923050838 0.2699703399877029 0.9110208528640101 0.6616937706314463 0.39989351816480945 0.5579661067187797 0.9771240502536911 0.11520867472520879 0.9074403050642212 0.41193471467042375 0.2248288779640808 

Process finished with exit code 0
'''

(2)random.uniform(a,b)

  • 随机返回a~b间的数值(包含a,不包含b)
import random
for i in range(20):
    a=random.uniform(2,6)
    print(a,end=" ")
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
3.0864991328439273 2.107168775679616 4.9684968704052395 5.086993276615002 3.465159487537877 4.095362479396249 5.65030809851952 4.550027262024152 4.244115635750566 2.646427109621999 2.314207463042076 3.0443330952598 2.648885328060621 4.554310070514203 3.1108653439308336 4.085828882523019 2.4224443903548103 4.737878214496135 3.1805470725403207 2.618873367054117 

Process finished with exit code 0
'''

(3)random.randint(a,b)

  • 随机返回a~b之间的整数(包含a,不包含b)
import random
for i in range(20):
    a=random.randint(2,6)
    print(a,end=" ")
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
5 5 6 6 2 3 3 5 6 5 4 6 2 6 4 5 6 6 6 6 

Process finished with exit code 0
'''

(4)random.randrange([start],stop,[step])

  • 从指定范围内,按指定基数递增或递减的集合中,随机获取一个整数
import random
for i in range(100):
    a=random.randrange(1,16,2)
    print(a,end=" ")
# 在1,3,5,7,9,11,13,15中随机取100个数
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
11 9 3 7 11 9 3 1 13 7 11 11 15 3 11 15 7 3 15 1 5 15 9 5 7 9 7 3 1 13 1 9 13 9 3 7 1 11 1 3 9 3 1 15 9 11 9 13 5 5 9 15 3 13 5 11 5 3 11 1 11 9 1 9 7 5 11 1 13 11 9 3 1 7 3 1 15 15 3 7 13 11 1 13 13 3 15 7 3 5 15 5 15 3 1 1 11 1 7 5 

Process finished with exit code 0
'''

(5)random.choice(sequence)

  • 从序列中随机获取一个元素,sequence可以为列表,字符串或者元组
import random
li=["JAVA","C++","VB","C#","C","Python"]
for i in range(20):
    b=random.choice(li)
    print(b,end=" ")
# 在列表中遍历序列
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
Python C# C++ C# C++ JAVA C++ C VB C# JAVA C VB VB C C++ C# JAVA C# C++ C++ C Python JAVA C++ JAVA C C VB C C# JAVA C# JAVA VB JAVA C++ Python C# C++ C# VB C++ C++ C Python VB Python JAVA C C++ C# Python C# C C Python Python JAVA JAVA C# JAVA Python JAVA VB JAVA C C# C++ C++ C# C Python JAVA C# C# C# C++ C Python Python C Python VB JAVA Python C++ Python VB JAVA JAVA JAVA C JAVA JAVA Python C C++ C VB 

Process finished with exit code 0
'''

(6)random.shuffle(x,[random])

  • 用来把一个列表的元素打乱,即将列表元素随机排列
import random
li=["JAVA","C++","VB","C#","C","Python"]
for i in range(6):
    random.shuffle(li)
    #不能赋值,例如"b=random.shuffle(li)",返回的值为None
    print(li)
'''
结果:(顺序不固定,每次随机)
D:\Python\python.exe D:/python_01/day01/day01.py
['Python', 'VB', 'C', 'C++', 'JAVA', 'C#']
['C#', 'C++', 'Python', 'JAVA', 'C', 'VB']
['C#', 'JAVA', 'VB', 'C++', 'Python', 'C']
['C#', 'C++', 'VB', 'C', 'JAVA', 'Python']
['C++', 'VB', 'C', 'C#', 'Python', 'JAVA']
['JAVA', 'Python', 'C++', 'C#', 'C', 'VB']

Process finished with exit code 0
'''

(7)random.sample(sequence.k)

  • 用来从指定序列中随机获取指定长度的片段并随机排列,但是不会修改原来的序列
import random
li=["JAVA","C++","VB","C#","C","Python"]
for i in range(6):
    print(random.sample(li,4))
'''
结果:(不是固定答案,每次随机生成)
D:\Python\python.exe D:/python_01/day01/day01.py
['C++', 'C#', 'C', 'Python']
['C#', 'C', 'JAVA', 'Python']
['C++', 'C', 'VB', 'Python']
['C', 'C#', 'JAVA', 'Python']
['VB', 'C', 'Python', 'C#']
['VB', 'C++', 'JAVA', 'Python']

Process finished with exit code 0
'''

你可能感兴趣的:(python,python)