Python第一课

Python历史状况

1、出生和应用

2、语言类型

  • 编译型
    源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。
  • 解释型
    程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用[编译]的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.
  • 静态语言
    在编写代码时,必须为变量指定一个明确类型的语言。比如Java、C/C++
  • 动态语言
    在编写代码时,不必为变量指定一个明确的类型,而是由解释器在运行时根据变量的使用情况确定变量的类型。比如python、javascript
  • 强类型
    变量必须有一个确定的类型。比如Java、C/C++、python
  • 弱类型
  • 在运行时,变量不必按它原来的类型使用,可以当做其他类型来使用,比如可以直接将一个字符串当整数,也可以直接将一个整数当做字符串。比如JavaScript

3、优缺点

4、Python种类

python基础

2.1第一条编程语句

print('Hello World')

2.2print()函数

2.3注释

单行注释

  • 一个#

多行注释

  • 三单引号

  • 三双引号

'''
多行注释1
'''

"""
多行注释2
"""

Demo:

print('Hello World')#第一条python程序
'''
让我们开始python之旅
畅行在python之途
'''

2.4 input函数

作用:从外部获取值

用法:括号中可以提供提示信息

####返回值为字符串类型

2.5 运行python程序的三种方式

1、解释器环境运行

2、脚本运行

3、IDE

  • pycharm
  • subline
  • vs Code
  • Atom

2.6 python中常见的数据类型

数据的概念

python中的数据类型(常见)

  • 数字(number)

    • 整型(int)

    • 浮点型(float)

    • 布尔型(bool)

    • 复数(complex)

  • 字符串(string)

  • 列表(list)

  • 元组(tuple)

  • 字典(dict)

  • 集合(set)

2.7变量和常量

变量

  • 概念:

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

  • 将数据储存到内存

  • 变量的定义

    • 命名

      规则:

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

      • 不能以数字开头

      • 不可以是python中的关键字

        注意:

        见名知意

        区分大小写

        在python中,单下划线和双下划线开头的变量有特殊的通途,一般不推荐使用单下划线和双下划线开头的变量名称

    • 变量定义
    • val_name = 初始值

拓展

关键字的查看

>>> import keyword
>>> keyword.kwlist
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

以下变量名称哪些是正确的,哪些是错误的?

666,错

City666,对

_56city,对

类型测试type()

type(val_name)

内存地址id()

id(val_name)

常量

不变的量

Pi,3.1415926

通常用大写,如

PI = 3.1415926

>>> a,b,c=111,222,333
>>> a
111
>>> b
222
>>> c
333
>>> a= 111
>>> b=222
>>> c=333
>>> x="abc"
>>> y="wer"
>>> z=x,y
>>> type(z)
<type 'tuple'>

互换两元素的值

>>> x=123
>>> y=456
>>> x,y=y,x
>>> x
456
>>> y
123
>>> a=123
>>> b=456
>>> tmp=a
>>> a=b
>>> b=tmp
>>> a
456
>>> b
123

2.8 数字

  • 整型(int)
    • 32bit,取值范围 − 2 31 − 2 31 − 1 -2^{31} -2^{31}-1 2312311
    • 64bit,取值范围 − 2 63 − 2 63 − 1 -2^{63}-2^{63}-1 2632631

以前python区分短整型和长整型,目前,无这些区分

  • 浮点型

    • 带有小数点的数字
  • 布尔型

    • Ture
    • False
  • 复数(complex)

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

常见的数学函数

函数名描述
abs(x)绝对值
pow(x,y) x y x^y xy
round(x,[n])返回四舍五入的值,如果给出n,表明四舍五入后的小数点的位数
math.exp(x)返回e的x次幂
math.fabs(-6.6)返回绝对值,类型为浮点数
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(x_1,x_2,…) max(x1,x2,)返回最大值
m i n ( x 1 . x 2 , … ) min(x_1.x_2,…) min(x1.x2,)返回最小值
>>> abs(-1)
1
>>> pow(3,2)
9
>>> round(2.3)
2.0
>>> round(2.51)
3.0
>>> round(3.1415926,4)
3.1416
>>> import math
>>> math.exp(1)
2.718281828459045
>>> math.exp(2)
7.38905609893065
>>> math.ceil(4.1)
5.0
>>> math.floor(4.9)
4.0
>>> math.fabs(-6.6)
6.6
>>> math.fabs(-6)
6.0
>>> math.log(math.e)
1.0
>>> math.log(100,10)
2.0
>>> math.modf(3.333)
(0.3330000000000002, 3.0)
>>> math.sqrt(9)
3.0
>>> max(1,2,3)
3
>>> min(1,2,3)
1

>>> dir(math)
['__doc__', '__file__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

2.9 表达式与运算符

  • 表达式

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

    • 算数运算符
    • 比较运算符
    • 逻辑运算符
    • 赋值运算符
    • 成员运算符
    • 身份运算符
    • 位运算符
Python算数运算符
运算符描述实例
+相加/拼接a+b
-相减/求差集a-b
*相乘/重复a*b
/相除a/b
%取模(余数)a&b
//取整数(商)a//b

拓展

divmod(x,y)

返回:x除以y得到的商和余数(以元组形式)

>>> 23%4
3
>>> 23//4
5
>>> divmod(23,4)
(5, 3)
Python比较运算符

以下假设变量a 为10,变量b为20

运算符描述实例
==等于(a==b)返回False
!=不等于(a!=b)返回True
<>不等于(a <> b) 返回 true。这个运算符类似 != 。
>大于(a > b) 返回 False。
<小于(a < b) 返回 true。
>=大于等于a >= b) 返回 False。
<=小于等于(a <= b) 返回 true。
Python赋值运算符

以下假设变量a 为10,变量b为20

运算符描述实例
=简单的赋值运算符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
Python位运算符

按位运算符是把数字看作二进制来算的,常见的位运算符如下:

运算符描述
&按位"与",同为1才为1,否则为0
|按位"或",有1则为1
^按位"异或",不同为1
~按位"取反",~x得到-x-1
<<左移运算符
>>右移运算符
a=15
b=31

二进制分别对应:
a--->00001111
b--->00011111
a&b  00001111
a|b  00011111
a^b  00010000

a>>2  00000011
a<<2  00111100

python成员运算符

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

运算符描述
in如果存在指定序列中,返回true,否则,返回False
not in如果不不存在于指定序列中,返回True;否则,返回False
>>> sr="abc"
>>> "a" in sr
True
>>> "a" not in sr
False
>>> 
>>> list = list(sr)
>>> list
['a', 'b', 'c']
>>> "a" in list
True

python身份运算符

用于比较两个对象的储存单元

id()

运算符描述
is判断两个标识符是不是引用自同一个对象
Not is判断两个标识符是不是引用自不同对象
python逻辑运算符
运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

a=10
b=20
a and b
20

a or b
10

not a
False

not b
False

2.10 数据类型强制转换

强制转换类型描述
int(x,[base])将x强制转化为整型,如果x是字符串,需要制定base基数
float(x)将x转换为浮点型
str(x)强转为字符串
repr(x)将对象转换为表达式字符串
list(x)将序列 x 转换为一个列表
tuple(x)将序列 x转换为一个元组
dict(x)将序列 x转换为一个字典
set(x)转换为可变集合
chr(x)将整数转化为字符
ord(x)将字符转化为数值
bin(x)转化为二进制
oct(x)转化为八进制
hex(x)转化为十六进制
>>> sr="123"
>>> a=12.3
>>> int(a)
12
>>> sr="123"
>>> int(sr)
123
>>> int(sr,8)
83
>>> 8**2+2*8+3
83
>>> int(sr,16)
291
>>> 16**2+2*16+3
291
>>> 

2.11 随机函数

导入这个模块

import random

random模块常见功能:

(1)random.random()

  • 用来生成一个0-1的随机浮点数[0,1)

    import random
    # print(dir(math))
    for i in range(100):
        a = random.random()
        print(a, end=" ")
    
    

    (2)random.uniform(a,b)

    • 用来生成指定范围内的浮点数,[a,b]
import random
# print(dir(math))
for i in range(100):
    a = random.uniform(6,8)
    print(a, end=" ")

(3)random.randint(a,b)

  • 用来生成指定范围内的整数,[a,b]
import random
# print(dir(math))
for i in range(100):
    a = random.randint(6,10)
    print(a, end=" ")

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

  • 从指定范围内,按指定基数递增或者递减的集合中,随机获取一个整数

Random.randrange(1,16,2)

1,3,5,7,9,11,13,15

import random
# print(dir(math))
for i in range(100):
    a = random.randrange(1,16,2)
    print(a, end=" ")

(5)random.choice(range(sequence))

import random
# print(dir(math))
for i in range(100):
    a = random.randrange(1,16,2)
    b=random.choice(range(1,16,2))
    print(b, end=" ")

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

  • 用来将一个列表的元素打乱,即将列表的元素随机排列

    import random
    # print(dir(math))
    list = ["C ","C++","Java","VB","python","c#"]
    #sr = "C"
    for i in range(6):
        a = random.randrange(1,16,2)
        random.shuffle(list)
        print(list)
    

(7)random.sample(sequence,k)

  • 用来从指定序列中随机获取指定长度的片段并随机排列,但不会修改原来序列
import random
# print(dir(math))
list = ["C ","C++","Java","VB","python","c#"]
#sr = "C"
for i in range(6):
    print(random.sample(list,4))
import random​print( random.randint(1,10) )        # 产生 1 到 10 的一个整数型随机数  print( random.random() )             # 产生 0 到 1 之间的随机浮点数print( random.uniform(1.1,5.4) )     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数print( random.choice('tomorrow') )   # 从序列中随机选取一个元素print( random.randrange(1,100,2) )   # 生成从1到100的间隔为2的随机整数​a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱random.shuffle(a)print(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值