python

一、python简介

1、python是 什么?

python是一种面向对象的解释型计算机程序设计语言,
由荷兰人Gudio van Rossum 于1989年发明,公开版本发行于1991年
作用:网站开发、后台服务、工具脚本、爬虫、数据分析、人工智能

特点:

  • 优点:简单(定位:简单、优雅、明确)、代码量少(人生苦短,我用python)、功能强大(大量第三方库)
  • 缺点:运行速度慢、代码不能加密
  • 补充:python是一门解释型语言,不需要编译,类似于php,不同于java,C#等编译型语言

2、安装python

python是跨平台的 ,执行python代码需要解释器
官网:http://www.python.org
版本:2.x 3.x 语法上有区别,一般使用3.x

  • windows安装步骤
  • Linux安装步骤

二、第一个python程序

1、使用python交互模式

在cmd窗口执行python命令,就进入Python交互模式,提示符>>>,输入exit()退出交互模式

>>> 3+8
11
>>> print('hello world')
hello world
>>> name = 'tom'
>>> print('tom')
tom
>>> print('name')
name
>>> exit()

C:\Users\cy>

2、文本编辑器

建议使用 sublime或nodepad++等,不要使用windows自带的记事本(会自动在文件开头添加特殊字符)
步骤
1.创建python脚本文件,以.py结尾,python

# -*- coding: utf-8 -*-
# 这是注释 第一个程序
print("hello world")
name="唐伯虎"
print(name)

兼容emax编辑器
注:如果脚本中有中文,可能会报错,需要在文件的第一行添加一个特殊注释
2.运行脚本

python hello.py

3.使用IDE工具

Pycharm,JetBrain公司

使用步骤

  1. 创建包,包中必须含有_init_.py,用于标识这是一个包
  2. 创建python脚本
#!/usr/bin/env python3
# -*- coding:utf-8-*-
__author__ = '陈爽'

# 使用print()
print('hello world')
name='alice'
print(name)

右键run运行脚本

4.基本使用

输入和输出

  • 使用print()
  • 使用input()

注释

  • 单行注释,以#开头
  • 多行注释,三对单引号开头,三对单引号结尾,或者双引号

python PEP8代码规范
缩进、空格、命名…
编码规范

  • 不在行末加分号
  • 大小写敏感
  • 多用空格
  • 使用缩进来表示代码块

三、python基础

弱类型语言

1.变量和变量类型

变量

  • 定义变量时不需要指定变量类型,直接为变量赋值即可
  • 变量要符合命名规范
    数据类型:整型、浮点型、字符串、布尔值、空值等
# 整型 int
a = 31234567
print(a)
print(type(a))

# 浮点型 float
b = 12.4
print(b, type(b))

# 字符串 str 定义字符串可以用单引号或双引号(推荐使用单引号)
c = 'ccc'
d = "ddd"
print(c, type(c))
print('张山说:“blamable ”')

# 字符串有多行时 可以用三个单引号’‘’  ‘’‘
e = '''
这是一个多行
字符串  类似HTML
标签
赋值的话就是字符串    而且会保留字符格式
'''
print( e, type(e))

# 布尔 bool 取值:True False 
f = True
print(f, type(f))

g = 5 < 3
print(g,type(g))

print(5+True)  # True表示1 False表示0
print(5+False)

# 空值  None 
h = None
print(h, type(None))

2.字符串

类型转换

# 将字符串转换为数值
a = '25'
b = int(a)
print(type(a), type(b))

c = '12.5'
d = float(c)
print(type(c), type(d))

# jian将数值转换为字符数
# print('hello' + 25) # TypeError: can only concatenate str (not "int") to str
print('hello' + str(25))

字符串常用方法

# 字符串常用方法
string = '    hello world'
print(string.islower())  # True
print(string.isupper())  # False
print(string.capitalize())
print(string)
print(string.index('llo'))
print(string.strip())  # 类似于java中的trim()
print(len(string))  # 调用len()函数获取长度

切片

# 切片 :用来获取指定索引范围的内容
name = 'toms cruise'
print(name[0])  # t

print(name[3], name[len(name)-1], name[-1])  # s e e
print(name[1:6])  # oms c 表示获取从[1,6)
print(name[:3])  # tom 表示从头获取[0,3)
print(name[2:])  # 表示获取到结尾
print(name[1:8:2])  # 索引为[1,8)的字符,每两个取一个 oscu
print(name[::2])  # 字符每两个取一个 隔一个取值 tm rie

格式化字符串:在字符串中指定占位符

1.使用%运算符,%s表示任意字符,%d表示整数,%f表示浮点数
2.使用.format函数,使用{}表示占位符
3.在字符串前面添加一个f,使用{变量名}来嵌入变量

# 格式化字符串:在字符串中指定占位符
# 方式1.使用%运算符,%s表示任意字符,%d表示整数,%f表示浮点数
name = 'tom'
age = 20
height = 180.4
print('大家好,我叫'+ name +',年龄:'+str(age)+',身高:'+str(height))
print('大家好,我叫%2.4s,年龄:%s,身高:%.2f' % (name, age, height))  # %2.4s表示字符串长度2-4
print('当前时间:%d年-%2d月-%d日' % (2021, 7, 14))  # 制定月份为两位,补0

# 方式2:使用format()方法,使用{}表示占位符
print('我叫{0},年龄{1},身高{2:.2f}'.format(name, age, height))
print('我叫{name},年龄{age},身高{height}'.format(name=name, age=age, height=height))

# 方式3:在字符串前面添加一个f,使用{变量名}来嵌入变量
print(f'我叫{name},年龄{age},身高{height}')

3.运算符

# 1.算术运算符
print(3 + 5)
print(3 * 5)
print(30 * '-')  # 30个字符串相连
print(5 / 3)  # 1.666666667 有小数的除法
print(5 // 3)  # 1 整除
print(2 ** 3)  # 幂
print(pow(2, 3))
# print(5++)  # 不支持
print('*' * 80)
# 2.比较运算符
j = 5
print(5 > 3)
print(10 > j > 1)  # 支持此种写法
print('abc' < 'acd')  # 可以用于字符串比较 比较的是字符串的Unicode编码
print('abc' < 'acd')
# 3.赋值运算符
a = 10
a += 15
print(a)
# 4.逻辑运算符
print(True and False)
print(5 > 2 or 4 < 1)
print(not 5 > 2)
x = 0  # 0 表示False 非0 表示True
y = 3
print(x and y)  # 若x为True 返回y的值 若x=0/False 则返回x
print(x or y)  # 若x为True 返回x的值  若x=False 则返回y
print(not x)  # 若x为True返回False
# 5.条件运算符
print('aaa' if 5 > 3 else 'bbb')
# 6.位运算符
a = 5  # 00000101
b = 8  # 00001000
print(a & b)  # 00000000 两位都是1 才为1 否则为0
print(a | b)  # 一位为1则为1
print(~ a)  # 0-->1   1-->0
print(a ^ b)  # 如果两位相同为0  不同则为1 00001101
print(b >> 2)  # 二进制所有位都右移两位 00000010
# 7.成员运算符
c = [3, 5, 12, 16, 27]
d = 5
print(d in c)  # 返回布尔值 True False
# 8.身份运算符
m = [1, 3, 5, 7]
n = [1, 3, 5, 7]
x = n
print(m is n)  # 返回布尔值 True False
print(x is n)
print()
'''
    is 和 ==的区别
    is 表示两个变量是否引用同一个变量
    == 判断两个变量的值是否相等
'''
print(m == n)

4.列表和元组

列表list是一种有序集合,用来存储多个值,可以向列表中添加或删除元素
元组tuple,与list很类似,也是一种有序集合,也是用来存储多个值,但tuple中的元素只能在定义时初始化,初始化后无法修改

# ---列表list
# 定义列表,使用[]
names = ['tom', 'alice', 'jack', 'mike']
print(names, type(names))

# 获取设置元素
print(names[1], names[:2])
names[0] = 'lucy'
print(names)
# 追加元素
names.append('zhangsan')
# 可以存储不同的类型 但不建议
names.append(25)
names.append((True))

# 在指定位置添加元素
names.insert(1, 'lisi')
# 删除元素
names.remove('jack')

# 弹出元素
print(names.pop(0))

# 获取元素的个数
print(len(names))
print(names)

# ------------元组tuple
# 定义元组  使用()
nums = (2, 3, 5, 23, 38, 250)
print(nums)
print(type(nums))

print(nums[2], nums[4])
print(nums[1:3])

# nums[3] = 666  TypeError: 'tuple' object does not support item assignment

# 解构赋值 
# a = nums[0]
# b = nums[1]
# c = nums[2]
# d = nums[3]
# e = nums[4]
# f = nums[5]
a, b, c, d, e, f = nums
print(a, b, c, d, e, f)

总结:列表list和元组tuple都是python内置集合,一个可变,一个不可变

5.条件判断

根据条件进行判断,从而执行不同操作
语法:if ... elif...else

age = 21
if age > 18:  # 冒号不能省略
    print('成年')
    print(111)
else:
    print('未成年')

score = 85
if score >= 90:
    print('优秀')
elif score >= 70:
    print('良好')
elif score >= 60:
    print('及格')
else:
    print('什么玩意')
# 简写的条件,当判断为0时 零、空字符串、None、空List 表示为False
if 5:
    print(5555)
nums = []
if nums :
    print('a')

6.循环

重复性执行某个操作,称为循环
两种

  • while循环
  • for…in循环
# -----while循环
# 计算1-100的和
i = 0
sum = 0  # Shadows built-in name 'sum'  sum是python中的内置函数
while i <= 100:
   sum += i
   i += 1
print(sum)
# -------for...in循环  类似迭代、遍历
names = ['tom', 'jack', 'alice', 'mike']
for name in names:
   print(name, end=',')
print()
# 计算1-100的和
sum = 0
for i in range(1, 101):
   sum += i
print(sum)

for i in range(1, 100, 2):  # 每两个取一个 1-99 生成[1,100)序列 步长为2
   print(i, end=',')

break和continue

你可能感兴趣的:(python)