python基础入门

Typora

对应的格式文件:Markdown格式文件

基本使用

文本

不设置任何东西

标题

#:一级标题(Ctrl+1)
##:二级标题(Ctrl+2)
###:三级标题(Ctrl+3)

markdown格式路径

  • 网址

  • 绝对路径

  • 相对路径

![](C:\Users\29709\Pictures\Saved Pictures\438428842017091415453803_43842884.jpg)

表格

姓名 班级 年龄
张山 1班 18
李四 2班 19

环境安装

  • 1.python的安装
  • 2.pycharm(IDE)/Sublime(轻量型IDE)
  • 3.Typora

基础

第一个程序:

print("Hello, World")

三种运行方式

  • Python解释器环境下运行;
(D:\Anaconda3) C:\Users\Administrator>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>print("Hello, World")
  • 命令窗口中运行脚本
python 文件名.py
​```

注释

  • 单行注释

    # this is 单行注释
    
  • 多行注释

    '''
    this is 多行注释1
    '''
    
    """
    this is 多行注释2
    """
    

print()输出函数

a=input()
print("value of a is:"a)

数据类型

  • 文本

  • 图形

  • 数值型数据

  • 音频

  • 视频

  • 网页数据

  • 等等

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

python中常见的数据类型


  • 数字(number)

  • 字符串(string)

  • 布尔型(bool)

  • 列表(list)

  • 元组(tuple)

  • 集合(set)

  • 字典(dict)

变量


概念:

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

举个例子,一栋教学楼当作内存的话,教室名称就相当于变量,其内部存储的内容就是具体的变量值

  • 作用:将数据存储到内存

    变量的定义:

    • java

      1.定义变量名称,数据类型
      2.变量赋值
      
    • Java中两步,python中一步搞定

      a=1
      b=1.56
      cd="abc"
      d=[1,2,3]
      e=(1,2,3)
      f={1,2,3}
      
  • 变量的命名规范

    • 字母/数字/下划线组成

    • 不能以数字开头

    • 不能是python

      注 意:通常命名时不以单下划线("")和双下划线(“”)开头。因为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']
    
  • 变量的调用

    a=1
    b=2
    c=a+b
    print(c)
    
  • 两值交换

    x=12
    y=16
    x,y=y,x
    x,y
    
  • 同时赋值

    a=b=c=3
    a,b,c=1,2,3
    

常量


常量就是不变的量,比方说,pi,3.14159,在程序运行过程中不可以改变的量

  • 一般,常量的定义所有字母大写

    PI=3.14
    

python中已经集成了基本的数学函数和常量,我们查看一下pi的值:

>>> import math
>>> math.pi
3.141592653589793 

dir()函数

>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'x', 'y']
  • 返回当前范围内定义的变量,方法,和帝国一的类型列表

数字


  • 数字提供了标量存储和直接访问

  • 时不可更改的数据类型(指变更数字会生成新的对象)

    • 整型

    • 长整型

      ​ python2区分整型和长整型,python3目前已基本不区分,后续优化会逐渐合并

    • 布尔型

      • True(1)
      • False(0)
    • 浮点型

      • 双精度浮点型
      • 十进制浮点型

科学记数法

用“E”或“e”来表示10

>>> print(3.14159E5)
314159.0
>>> print(314159.0e-5)
3.14159
>>>
  • 复数

    i**2=-1

我们知道,任何一个数的平方都是一个非负数;但现在,我们需要找到一个数的平方为负数。因此,18世纪,数学家定义虚数(虚数基本单位(i,j))

i ** 2=-1, j ** 2=-1/。

i 或 者 j = − 1 i或者j=\sqrt { {\rm{ - }}1} ij=1

基于这个特殊的数(或者称之为概念),数学从此有了一个新的分支。现在虚数已经广泛应

用于数值和科学计算应用程序中。一个实数和一个虚数的组合构成一个复数。一个复数是一对

有序浮点数(x, y)。表示为 x + yj, 其中 x 是实数部分,y 是虚数部分。

渐渐的复数在日常运算,机械,电子等行业获得了广泛的应用。由于一些研究人员不断的重

复制造用于复数运算的工具, 在很久以前的 Python1.4 版本里,复数终于成为一个真正的

Python 数据类型。

  • 复数属性

    假如,定义num=1.6+5.6j,则对应的长见属性为:

    • num.real 返回复数的实部
    • num.imag 返回复数的虚部
    • num.conjugate()返回复数的共轭复数
      • 共轭复数:实部
>>> num=1.6+5.6j
>>> num
(1.6+5.6j)
>>> num.real
1.6
>>> num.imag
5.6
>>> num.conjugate()
(1.6-5.6j)
>>>

表达式与运算符

  • 表达式

    由变量,常量和运算符组成的式子。计算器可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算

算数运算符

运算符 描述 实例
+ 加 : 两个对象相加 a + b
- 减 :得到负数或是一个数减去另一个数 a - b
* 乘 : 两个数相乘或是返回一个被重复若干次的字符串 a * b
/ 除 : x 除以 y,返回一个实数 b / a
% 取模 : 返回除法的余数 b % a
** 幂 : 返回x的y次幂 a**b
// 取整除 : 返回商 a//b

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 // a0

Python位运算符

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

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

针对逻辑运算的进一步研究:

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

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。

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) 将一个整数转换为一个二进制字符串
十进制 二进制 八进制 十六进制
1 0000 0001 0000 0001 0000 0001
2 0000 0010 0000 0002 0000 0002
3 0000 0011 0000 0003 0000 0003
4 0000 0100 0000 0004 0000 0004
5 0000 0101 0000 0005 0000 0005
6 0000 0110 0000 0006 0000 0006
7 0000 0111 0000 0007 0000 0007
8 0000 1000 0000 0010 0000 0008
9 0000 1010 0000 0011 0000 0009
10 0000 1011 0000 0012 0000 000a
11 0000 1100 0000 0013 0000 000b
12 0000 1101 0000 0014 0000 000c
13 0000 1110 0000 0015 0000 000d
14 0000 0000 0016 0000 000e
15 0000 000f
16 0000 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
  • cmp()函数

    python2使用,python3已取消。

    Python3中对应的使用:

    >>>import operator
    
    然后:
    
    >>> operator.eq("a","a");
    
    True
    
    lt(a,b) 相当于 a<b     从第一个数字或字母(ASCII)比大小
    
          less than
    
      le(a,b)相当于a<=b
    
          less and equal
    
      eq(a,b)相当于a==b     字母完全一样,返回True,
    
          equal
    
      ne(a,b)相当于a!=b
    
          not equal
    
      gt(a,b)相当于a>b
    
          greater than
    
      ge(a,b)相当于 a>=b
    
          greater and equal
    
      函数的返回值是布尔
    
    

随机函数(random)

  • 模块导入
# 方法1
import random
# 方法2
from random import * #不推荐使用
  • 查看对应的方法和属性
方法一:
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
>>> import random
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'random']
>>>

方法二:
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
>>> from random import *
>>> dir(random)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
>>>

  • random模块常用的功能

    • 1.random.random():用于随机生成一个0到1的浮点数n(0<=n<=1)

      >>> import random
      >>> num=random.random()
      >>> print(num)
      0.6957514100496569
      >>> print(num)
      0.6957514100496569
      >>> num=random.random()
      >>> print(num)
      0.21915205358928724
      >>>
      
  • 2.random.uniform(a,b):用于生成指定范围内的随机浮点数。两个参数,其中之一是上线,另一个是下限:

    • 如果a>b,生成的随机数n:a<=n <=b;
    • 如果a<b,生成的随机数n:b<=n <=a;
>>> import random
>>> random.uniform(1,10)
6.564298871828516
>>> random.uniform(10,1)
5.932896570054294
>>>
  • 3.random.randint(a,b):随机生成a到b范围内的整数n(a<=n<=b)

    >>> random.randint(1,10)
    
  • 4.random.randrange([start],[stop],[step]):从指定范围内,按指定基数递增的集合中获取一个随机数。

    ​ 集合为{strat,strat+step,strat+2*step,…,strat+n*step}

>>> import random
>>> random.randrange(10,30,2)
10
>>> random.randrange(100,30,-2)
40
>>>
  • 5.random.choice(sequence):从序列中随机获取一个元素。

  • 将字符串的内容根据索引输出

>>> str = "Hello Word"
>>> num = 0
>>> while num < len(str):
...     print("str[%d] = %s" % (num, str[num]))
...     num += 1;
...
str[0] = H
str[1] = e
str[2] = l
str[3] = l
str[4] = o
str[5] =
str[6] = W
str[7] = o
str[8] = r
str[9] = d
>>>
  • 求出1~100的和(终端报错,PyCharm可以执行)
num = 1
sum = 0
while num < 101 : 
	sum += num
	num += 1
print("1~100的和:", sum)

for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串,for循环格式:

for in 序列:
    语句(块)

demo:

1.遍历字符串。

a="Life is short,I use python"
for i in a:
    print(i,end="")
    例子:
    for i in range(10)
        print(i,end=" ")
        结果:0 1 2 3 4 5 6 7 8 9
        不加空格就是:0123456789

2.range()

range(end)
#[0,end]
range(start,end)
#[start,end]
range(start,end,step)
#{start,start+step,...start+n*step}(start+n*step)为[start,end]范围内的

用for循环打印1+…100的值

sum=0
for i in range(1,101,1):
    sum+=i
    print(sum,end=" ")
用for循环打印:
****
****
****
****
for i in range(4):
    for a in range(4):
     print("*", end="")
    print()
用while循环打印出:
****
****
****
****
a=1
while a<=4:
    b=1
    while b<=4:
     b+=1
     print("*",end="")
    a+=1
    print()
       

字符串(String)

字符串是Python中最常用的数据类型,我们可以使用引号(‘或者“)来创建字符串,事实上,在Python中,加了引号的字符都被认为是字符串!

name="china"         #双引号
age="5000"           #只要加双引号就是字符串
age_1=5000           #不加,整形
a="""i love you"""   #三双单引号
b='''i love you'''   #三单引号
c='love'             #单引号
print(type(name),type(age),type(type_1),type(a),type(a),type(b),type(c),sep="|")
<class 'str'>|<class 'str'>|<class 'int'>|
<class 'str'>|<class 'str'>|<class 'str'>

多引号是什么作用呢?作用就是多行字符串必须用多引导。

msg="""
轻轻地我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
"""
print(msg)

字符串运算及操作

数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what?是的,但只能进行“相加”和“相乘”运算。

(1)拼接(+)

>>> a="Hello"
>>> b="Python"
>>> a+b
'HelloPython'
>>>

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其他的类型拼接

(2)重复(*)

>>> a="Hello"
>>> a*3
'HelloHelloHello'

(3)字符串索引([]以及切片[::])

#########0123456789012345678901234567
89
>>> a="Life is short,I use python"
>>> len(a)
27
>>>#索引
>>>a[0]
'L'
>>>a[15]
'I'
>>>a[-1]
'n'
>>>a[-6]
'p'
>>>#切片
...
>>>a[:13] 从第一个元素开始,一直到索引值为12的元素
'Life is short'
>>>a[15:]从索引值为15的元素开始,一直到最后
'I use python'
>>>a[15::2]# 从索引值为15的元素开始,步长为2,即每次跳过一个元素,一直到最后
'Iusepto'
>>>a[::-1]# 逆序输出
'nohtyp esu I,trohs si efil'
>>>

(4)大小写转换

  • str.lower():转换小写
  • str.upper():转换大写
  • str.swapcase():大小写对换
  • str.capitalize():字符串首为大写,其余小写
  • str.title():以分隔符标记,首字符为大写,其余为小写
>>>a="Life is short, I use python"
>>>a.lower()#将所有大写字符转换为小写字符	
'life is short, i use python'
>>>a.upper()#将所有小写字符转换为大写字符
'LIFE IS SHORT, I USE PYTHON'
>>>a.swapcase()#将所有小写字符变成大写,将大写字符变成小写
'LIFE IS SHORT, i USE PYTHON'
>>> a.capitalize()#将字符串的第一个字符大写
'Life is short, i use python'
>>> a.title()#返回标题化的字符串,
'Life Is Short, I Use Python'
>>>
#不区分大小写
input_str="AbDc"
get_str=input("请输入验证码(不区分大小写:)")
if input_str.lower()==get_str.lower():
    print("输入正确") 
else:
    print("输入错误")

(5)字符串格式输出对齐

  • str.center() 居中
  • dtr.ljust() 左对齐
  • str.rjust() 右对齐
  • str.zfill()
>>> a ="Life is short, I use python"
>>>a.center(35,'*')#返回一个原字符串居中,并使用空格填充至长度width 的新字符串 必须大于字符串长度还需要是双数
'****Life is short, I use python****'
>>>a.ljust(35,'*')#返回一个原字符串左对齐,并使用空格填充至长度width 的新字符串
'Life is short, I use python********'
>>>a.rjust(35,'*'))#返回一个原字符串右对齐,并使用空格填充至长度width 的新字符串
'********Life is short, I use python'
>>>a.zfill(35)#返回长度为width,原字符串 string右对齐,前面填充0,只有一个参数,zerofill
'00000000Life is short, I use python'

(6)删除指定字符

  • str.lstrip()
  • str.rstrip()
  • str.strip()
>>> a="****Life is short,I use python****"
>>>a.lstrip("*")
'Life is short,I use python****'
>>>a.rstrip("*")
'****Life is short, I use python'
>>>a.strip("*")
'Life is short, I use python'
>>>

(7)计数

=COUNTIF(B2:B31, “>=30”)/COUNT(B2:B31)

>>> a ="Life is short, I use python"
>>> a.count('i')#返回str在string里面出现的次数
2
>>> a.count('i',4,8)#在索引值为(4,8)的范围内str 出现的次数
1
>>>

(8)字符串搜索定位与替换

  • str.find()
>>> a="Life is short, I use python"
>>> a.find('e')#查找元素并返回第一次出现的元素索引值
3
>>> a.find('e',18,24)#查找元素在指定索引范围内的索引
19
>>> a.find('w')#找不到值返回-1
-1
  • str.index()
    • 和find()方法一样,只不过如果str不在string中会报一个异常。
>>> a="Life is short, I use python"
>>> a.index('e')
3
>>> a.index('e',18)
19
>>> a.index('w')
Tranceback(most recent call last):
   File "<stdin>",line 1, in <module>
ValueErroe:substring not found
>>>

  • str.replace()
>>> a="Life is short, I use python"
>>>a.replace('I use','You need')
'Life is short, You need python'
>>>a.replace('t','T')
'Life is shorT,I use pyThon'
>>> a.replace('t','T',1)#往左边开始找找到的遇到的第一个
'Life is shorT,I use python'
>>>

(9)字符串条件判断

-?isalnum(),字符串由字母或数字组成,
-?isalpha(),字符串只由字母组成,
-?isdigit(),字符串只由数字组成

In?[1]:?a?=?"abc123"

In?[2]:?b?=?"ABC"

In?[3]:?c?=?123

In?[4]:?a.isalnum()
Out[4]:?True

In?[5]:?a.isalpha()
Out[5]:?False

In?[6]:?a.isdigit()
Out[6]:?
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值