基础

  • Python的三种运行方式

    终端、脚本、IDE
    

注释

#这是单行注释

"""
这是多行注释1
"""

'''
这是多行注释2
'''

print()输出

print("唐友吃不着鸡")
print('唐友吃不着鸡')
print("""
	唐友吃不着鸡
	""")
print('''
	唐友吃不着鸡
	''')

print(help(print))
#查看打印的类型

input 函数

a = input("请输入信息>>>")
print(a)
print(type(a))
  • input()函数中可以给提示信息,但本身不会传递给相关变量,只有输入的值才会传递。
  • input()函数的返回值为字符串类型,可以用type()函数测试

数据:

  • 文本
  • 图形
  • 音频
  • 视频
  • 网页数据
  • 等等

不同的数据,我们需要定义不同的数据类型。

python的常见数据类型:

  • 数字(number){

    1. 数字提供了标量存储和直接访问
    2. 是不可更改的数据类型(指变更数字会生成新的对象)

    }

    • 整型(int){

      ​ Python有几种整数类型,布尔类型是只有两个值的整型,常规整型是绝大多数

      ​ Python2区分整型和长整形,Python3不区分

      }

    • 长整型(long)

    • 浮点型(float){又分为双精度浮点型和十进制浮点型

      ​ 十进制浮点型:

      ​ python3中说浮点型

      主要知道科学计算法

      print(2.3124E4)
      print(4000e-3)
      """
      23124.0
      4.0
      大小写e都可以,代表
      """
      

      }

    • 复数(complex){

      x ** 2 = -1 x的平方等于-1 任何一个实数的平方都是一个非负数。

      但是现在一个数的平方我们要让他得到一个负数,怎么办?

      所以,18世纪的数学家们定义了虚数(i,j, 虚数基本单位,i ** 2 = -1 , j * *2 = -1)

      属性:

      ​ num.real 该复数的实部

      ​ num.imag 该复数的虚部

      ​ num.conjugate 返回该复数的共

      ​ }

  • 字符串(String)

  • 布尔型(Bool){True/False(1,0)}

  • 列表(list)

  • 元组(tuple)

  • 集合(set)

  • 字典(dict)

变量

  • 概念:
    • 程序可操作的存储区名称
    • 程序运行存储区中能改变的数据
    • 每个变量都有特定的类型
  • 作用:将数据存储到内存;
  • 变量的定义
变量名 = 初始值(初始值的实际类型决定变量的数据类型)
  • 变量的命名
    • 必须由字母、数字、下划线组成;
    • 不能以数字开头(但是由于Python中单下划线("_")和双下划线("__")名称的变量有特殊用途,因此不推荐自定义单下划线和双下划线开头的变量
    • 不能是Python中的关键字

变量命名尽可能见名知意:

大驼峰、小驼峰

首先,看一下关键字:

import keyword
print(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']
'''
  • 变量类型查看
type(变量名)

  • 变量内存地址
id(变量名)

dir():对应之前所有变量
dir(a): 参数里所有的变量和属性

举例

a = 1
print(a,type(a),id(a))
b = "Hunan"
print(b,type(b),id(b))
a = 1
print(a)
del a
print(a)

ApplePrice/Apple_Price

  • 变量的调用
a = 1
b = 6
c = a + b
print(c)

调用变量的时候,变量实现必须与定义,否则报错

常量

常量即不变的量,比如,π 3.1415926,或者程序运行过程中不可以更改的量。

一般常量的定义全部都用大写

π = 3.14

# 交换变量
x = 2
y = 3
x,y = y,x
print(x,y)

# 同时赋值
a = b = c = 3
print(a,b,c)
# a,b,c= 3  #报错
a,b,c= 1,2,3  #同步赋值,---对应
print(a,b,c)
b = 1,2  #返回一个元组
print(b)

运算符 描述 实例
+ 加 : 两个对象相加 a + b
- 减 :得到负数或是一个数减去另一个数 a - b
* 乘 : 两个数相乘或是返回一个被重复若干次的字符串 a * b
/ 除 : x 除以 y b / a
% 取模 : 返回除法的余数 b % a
** 幂 : 返回x的y次幂 a**b
// 取整除 : 向下取接近除数的整数 a//b
a = 27
b = 4
print(a/b)
print(a//b)
print(a%b)
"""
6.75
6
3
"""

Python的比较运算符

以下假设变量a为10,变量b为20:
运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (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中没有++,–这种写法

Python位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

运算符 描述
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^ 按位异或运算符:当两对应的二进位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数

关于取反:

下表中变量 a 为31,b为 15二进制格式如下:
a = 31
b = 15
print(bin(a))
print(bin(a<<2))
print(bin(b))
print(bin(b>>2))
print(a&b)
print(a|b)
print(a^b)
print(~b)

"""
0b11111
0b1111100
0b1111
0b11
15
31
16
-16
"""

Python逻辑运算符

Python语言支持逻辑运算符,

运算符 逻辑表达式 描述
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

同样仍以变量 a 为 31,b 为 15为例:

a = 31
b = 15
print(a<3 and b>12)
print(a<30 or b>12)
print(not a)

"""
False
True
False
"""

  1. 在没有()的情况下not优先级高于 and,and优先级高于or,即优先级关系为()>not>and>or,同一优先级从左往右计算

判断逻辑语句的正与负:

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 #
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 > 8 #
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#
"""
False
True
True
False
True
False
False
"""

and(逻辑与) 0 1
0 0 0
1 0 1
or(逻辑或) 0 1
0 0 1
1 1 1

Python成员运算符

除了以上的一些运算符之外,python还支持成员运算符,测试示例中包含一系列的成员,包括字符串,列表或元组

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x在y序列中,如果x在y序列中返回True
not in 如果在指定的序列中没有找到值返回True,否则返回False x不在y的序列中,如果x不在y序列或者能够返回True

Python身份运算符

身份运算符用于比较两个对象的存储单元

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注:id()函数用于获取对象内存地址

Python运算符的优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^\
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

数据类型的强制转换

强转类型 描述
int(x) 将x转换成一个整数
float(x) 将x转换成浮点数
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
bin(x) 将一个整数转换为一个二进制字符串

关于进制

十进制 二进制 八进制 十六进制
0 0000 0000 0000 0000 0
1 0000 0001 0000 0001 1
2 0000 0010 0000 0002 2
3 0000 0011 0000 0003 3
4 0000 0100 0000 0004 4
5 0000 0101 0000 0005 5
6 0000 0110 0000 0006 6
7 0000 0111 0000 0007 7
8 0000 1000 0000 0010 8
9 0000 1001 0000 0011 9
10 0000 1010 0000 0012 A
11 0000 1011 0000 0013 B
12 0000 1100 0000 0014 C
13 0000 1101 0000 0015 D
14 0000 1110 0000 0016 E
15 0000 1111 0000 0017 F
16 0001 0000 0000 0020 0010

常见的数学函数

函数名 描述
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
sqrt(x) 返回数字x的平方根
cmp(x, y) 存在于py2,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
  • abs与fabs运行区别:
    • fabs()的使用需要导入数学模块(math),而abs()不需要
    • 返回数据类型不同
>>> a = abs(-9)
>>> b = fabs(-9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'fabs' is not defined
>>> import math
>>> a = abs(-9)
>>> b = math.fabs(-9)
>>> a,type(a)
(9, <class 'int'>)
>>> b,type(b)
(9.0, <class 'float'>)

>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'math']
>>> from math import *
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'math', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

指数

1、正整数指数幂:实数a自乘n次得到的实数b,b=a×a×a ×a……×a, (n∈N,且 n >1),称为实数a的n次幂,n为自然数,数a的n次幂用an表示,记作{\rm{b}} = {a^n},数a称为幂的底,数n称为幂指数。注意:{\rm{b}} = {a^1}

  • cmp()函数

    python2使用,python3已取消

    python3中对应的使用:

>>> import operator
>>> operator.eq("q","q") # eq:equal,判断是否相等
True
lt(a,b)相当于a<b  从第一个数字或字母(ASCII)比大小
>>> operator.lt("a","b") # lt:less than
True
>>> operator.le("a","a")
True
>>> operator.lt("a","a") # lt:less than
False

随机函数(random)

  • 模块导入
#方法一
>>>import random
#方法二
>>>from random import * #不推荐使用

  • 查看对应的方法和属性
>>>dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_itertools', '_log', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>

  • random模块常用的功能
    • random.random():用于随机生成一个0到1的浮点数n(0<=n<=1)
>>> import random
>>> nun = random.random()
>>> print(nun)
0.09095966637327513
>>> print(nun)  #在随机生成之后无论怎么打印这个数还是不会变
0.09095966637327513
>>> nun = random.random()
>>> print(nun)	#只能重新生成一个随机数才会改变
0.9659144361674479
>>>

  • random.uniform(a,b):用于生成指定范围内的随机浮点数,两个参数,其中之一是上限,另一个是下限
    • 如果a>b,生成的随机数n:a<=n<=b;
    • 如果a<b,生成的随机数n:b<=n<=a;
>>> import random
>>> random.uniform(1,10)
4.238137852842515
>>> random.uniform(10,1)
1.5240380497388877

  • random.randint(a,b):随机生成a到b范围内的整数n(a<= n <=b)
>>> random.randint(10,1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Python36\lib\random.py", line 221, in randint
    return self.randrange(a, b+1)
  File "D:\Python36\lib\random.py", line 199, in randrange
    raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (10,2, -8)
#括号内的数字只能从小到大,从大到小会报错
>>> random.randint(1,10)
3

  • random.randrange([start],[stop],[step]):从指定范围内,按指定基数递增的集合中获取一个随机数。
    • 集合为(start,start+stop+2*step,···,start+n*step)
>>> random.randrange(10,30,2)
20 
>>> random.randrange(100,30,-2)
52

  • random.choice(sequence):从序列中随机获取一个元素
>>> lst = ['python','C','C++','javascript']
>>> str1 = ('I love python')
>>> random.choice(lst)
'javascript'
>>> random.choice(lst)
'C'
>>> random.choice(str1)
'y'
>>> random.choice(str1)
'n'


  • random.shuffle(x[ , random]):用于将一个列表中的元素打乱,即将列表内的元素随机排列
>>> p = ['A','B','C','D','E']
>>> random.shuffle(p)
>>> p
['C', 'E', 'A', 'D', 'B']


  • random.sample(sequemce,k):从指定序列中获取指定长度的片段并随机排列。注意:sample函数不会修改原有序列。
>>> li = [1,2,3,4,5,6]
>>> random.sample(li,4)
[1, 6, 4, 5]
>>> random.sample(li,3)
[4, 1, 5]
>>> random.sample(li,2)
[2, 5]
>>> random.sample(li,5)
[6, 3, 1, 5, 4]


Python程序流程控制

  • if…else

  • while

  • for

    C或者java,Switch…case,default,Python中则不存在

常见流程控制语句:

  1. 顺序执行

  2. 选择分支

  3. 循环执行

    需要去注意的是,C或者java,通常用花括号{}来控制流程控制语句的语法,而Python 则使用缩进来控制相应的语法

>>> a = 2
>>> if a < 3:
...     print("a < 3")
...
a < 3


IF条件分之语句

Python条件语句是通过一条或多条语句执行结果(True或者False)来决定执行的代码块

  • if单分支语句
if 逻辑语句:
    语句()


demo:

print(111)
if True:
	print(222)
print(333)	


结果:

111
222
333


修改条件:

print(111)
if False:
	print(222)
print(333)


结果:

111
333


将True或者False换成逻辑语句。

练习:随机生成一个数字,输入一个数字,比大小

import random
a = random.randint(1,10)
for i in range(10):
    b = int(input("输入数字"))
    if a < b:
        print("猜对了")
print("猜错了")


  • if双分支语句
if 逻辑语句:
	语句()1
elif:
	语句()2


demo:

learning = "java"
if learning == "python"
	print("啊哈,真巧,我也在学习Python")
else:
	print("小明和你一样,他也在学习java")
print("很高兴认识你")	


练习:写一个登录判断

import getpass
username = input("请输入用户名:")
password = getpass.getpass("请输入密码:")
if username == "admin" and password == "123456":
    print("登陆成功")
else:
    print("请重试")


输入密码隐藏:getpass(在IDE中无法运行,只能在脚本中运行)

  • if多分支语句

    Python中用elif代替了 else if,所以if语句的关键字为:if - elif - else。

    注意:
    1. 每个条件后面要使用冒号:,表示接下来是要满足条件后要执行的语句块
    2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
    3. 在Python中没有switch - case语句。
if 逻辑语句:
    语句()1
elif 逻辑语句2:
    语句()2
elif 逻辑语句3:
    语句()3
    ......
elif 逻辑语句n-1:
    语句()n-1
else:
    语句()n


练习:

输入0~100看能到多少分

num = int(input("输入你要的数字:"))
if num == 100 :
    print("A+")
elif num > 100:
    print("比最高分还高是自己改的吧")
elif num >= 90:
    print("A")
elif num >= 80:
    print("B")
elif num >= 70:
    print("C")
elif num >= 60:
    print("D")
else :
    print("不及格")


while循环语句

  • 概念:循环用来执行部分代码…即在一定的条件下执行重复的代码。
  • 格式:
while 逻辑语句:
	语句(块)


demo:

  1. 1-100
num = 0
while num < 100:
   num += 1
   print(num)


2.1-100的和:

num = 0
max = 0
while num < 100:
   num += 1
   max += num
print
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值