python是一种面向对象的解释型计算机程序设计语言,
由荷兰人Gudio van Rossum 于1989年发明,公开版本发行于1991年
作用:网站开发、后台服务、工具脚本、爬虫、数据分析、人工智能
特点:
python是跨平台的 ,执行python代码需要解释器
官网:http://www.python.org
版本:2.x 3.x 语法上有区别,一般使用3.x
在cmd窗口执行python
命令,就进入Python交互模式,提示符>>>
,输入exit()
退出交互模式
>>> 3+8
11
>>> print('hello world')
hello world
>>> name = 'tom'
>>> print('tom')
tom
>>> print('name')
name
>>> exit()
C:\Users\cy>
建议使用 sublime或nodepad++等,不要使用windows自带的记事本(会自动在文件开头添加特殊字符)
步骤
1.创建python脚本文件,以.py结尾,python
# -*- coding: utf-8 -*-
# 这是注释 第一个程序
print("hello world")
name="唐伯虎"
print(name)
兼容emax编辑器
注:如果脚本中有中文,可能会报错,需要在文件的第一行添加一个特殊注释
2.运行脚本
python hello.py
Pycharm,JetBrain公司
使用步骤
#!/usr/bin/env python3
# -*- coding:utf-8-*-
__author__ = '陈爽'
# 使用print()
print('hello world')
name='alice'
print(name)
右键run
运行脚本
输入和输出
注释
python PEP8代码规范
缩进、空格、命名…
编码规范
弱类型语言
变量
# 整型 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))
类型转换
# 将字符串转换为数值
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}')
# 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)
列表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内置集合,一个可变,一个不可变
根据条件进行判断,从而执行不同操作
语法: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')
重复性执行某个操作,称为循环
两种
# -----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