文章目录

  • 1.Python数据分析之前奏
    • 1.1 Python基本语法
      • (1)数据类型
        • 字符串
        • 整数
        • 浮点数
        • 布尔值
        • 空值
        • 运算符
      • (2)数据结构
      • 可变对象和不可变对象
        • 类型转换
    • 1.2 Python函数
  • 2.第一次课作业
    • (1)python基础语法。
    • (2)列表,字典,集合
    • (3)条件判断,循环和函数

1.Python数据分析之前奏

1.1 Python基本语法

Python使用Python使用<变量名>=<表达式>的方式对变量进行赋值

a=1
a
1
s = 'hello world'
s
'hello world'

(1)数据类型

字符串

字符串的定义是使用引号来定义,单引号与双引号是等价的

s='hello world'
s
'hello world'

三引号用来输入包含多行文字的字符串(可以是单引号也可以是双引号)

s='''hello
my
world'''
print(s)
hello
my
world

字符串的加法

s="hello"+"worrld"
s
'helloworrld'

字符串索引(索引号从0开始)

s[1]
'e'

字符串的分割(spilt方法,可以按照自己指定的方法分割,默认是空格)

s="helloworld"
s.split('o')
['hell', 'w', 'rld']
s="hello,world"
s.split(",")
['hello', 'world']

查看字符串的长度

len(s)
11

整数

b=100
b
100

浮点数

c=3.8
c
3.8

布尔值

a=True
a
True
a=1>2
a
False

空值

a=''
a
''
len(a)
0
a = None
print(a)
None

运算符

运算符:http://www.runoob.com/python/python-operators.html#ysf4

基本运算

2**3 #幂运算
8
9%2 #取余运算
1
9//2 #取整除-返回商的整数部分
4

比较运算

1 != 2
#2 <> 2 #都是不等于的写法,貌似后面这个在3以后的版本里就不支持了
True
1>2
False
3==3 #等式两边比较
True

赋值运算

a=2
a*=3 #a=a*3
a
6

逻辑运算

&-and,a&b只有当ab都是True的时候,结果才是True,否则都是False

a=True
b=False
a&b
False
a=3>2
b=4>3
a&b
True

|-or,a|b,当ab有一个为True的时候,结果就是True,两个都是False的时候结果才是False
(注意或运算有短路的现象,左边表达式成立的话右边将不会执行)

a=1>2
b=4>3
a|b
True

not 取反

not a
True

(2)数据结构

列表List

Python用[]来生成列表,也可以用list关键字

a=[1,2,3,4,5]
a
[1, 2, 3, 4, 5]
actors=['周迅','章子怡','赵薇']
actors
['周迅', '章子怡', '赵薇']
b=[1,2.3,'a','b']
b #列表中的元素允许各个元素不一样
[1, 2.3, 'a', 'b']
list('abcde') #利用list生成列表
['a', 'b', 'c', 'd', 'e']

列表操作

a+b #将两个链表链接在一起
[1, 2, 3, 4, 5, 1, 2.3, 'a', 'b']
a[0] #索引号,从0开始
1
a.append(6) #append方法,在末尾增加一个数
a
[1, 2, 3, 4, 5, 6]
a.insert(1,10) #insert方法,索引号,值
a
[1, 10, 2, 3, 4, 5]
a.pop() #pop方法,默认是删除最后一个元素,在里面写数字的话是写索引号
a
[10, 10]
a.pop(1)
a
[10]
a[0:3] #数据切片,左闭右开区间
a[-1] #-1表示倒数第一个数
a[-3:-1] #负索引切片
a[:3]
a[-3:] #不写的话默认从左边第一个开始或者取到右边最后一个
[3, 4, 5]
b=[1,2,3,4,5,6,7,8,9]
#b=[a:b:i] #间隔取值,前面区间仍然是左闭右开,后面为步长,同样也适用于负数的情况
b[2:9:3]
[3, 6, 9]

元组tuple

另一种有序列表叫元组:tuple,用()来表示。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出演员的名字:

a = (1,2,3,4,5)
#a.pop() #报错,'tuple' object has no attribute 'pop'
a #用途:作为一个常量防止数据被篡改
(1, 2, 3, 4, 5)

字典 dict

Python用{key:value}来生成Dictionary

字典里面的数据可以是任何数据类型,也可以是字典

mv = {"name":"肖申克的救赎","actor":"罗宾斯","score":9.6,"country":"USA"}
mv
{'name': '肖申克的救赎', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
mv["actor"]
'罗宾斯'
mv.keys()
dict_keys(['name', 'actor', 'score', 'country'])
mv.values()
dict_values(['肖申克的救赎', '罗宾斯', 9.6, 'USA'])
mv.items()
dict_items([('name', '肖申克的救赎'), ('actor', '罗宾斯'), ('score', 9.6), ('country', 'USA')])
mv["name"] = "泰坦尼克号"
mv
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
mv["director"] = "德拉邦特"
mv
{'name': '泰坦尼克号','actor': '罗宾斯','score': 9.6,'country': 'USA','director': '德拉邦特'}
mv.pop("director")
mv
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}

集合set

Python用{}来生成集合,集合不含有相同元素

s = {2,3,4,2}#自动删除重复数据
s
{2, 3, 4}
len(s)
3
s.add(1) #如果加入集合中已有元素没有任何影响
s
{1, 2, 3, 4}
s1 = {2,3,5,6}
s1
{2, 3, 5, 6}
s & s1 #取交集
{2, 3}
s | s1 #取并集
{2, 3, 4, 5, 6}
s - s1 #差集
{1, 4}
# s.remove(2) #删除集合s中一个元素,注意只能删除一次
s.pop() #[往前删]
# s.clear() #一键清空
s
{3, 4}

平时列表和字典用的是最多的

可变对象和不可变对象

可变对象可以对其进行插入,删除等操作,不可变对象不可以对其进行有改变的操作。Python中列表,字典,集合等都是可变的,元组,字符串,整型等都是不可变的。

类型转换

int(3.14)
3
float(3)
3.0
s = "abcd"
type(s) #str
str
list(s)
['a', 'b', 'c', 'd']

(3)判断和循环

2 == 2
True
97 == 'a'
False
'a' == 'A'
False
if 2>1:print('hello')
hello
a = 1
b = 2
if a>b:print("a大于b")
else:print("a小于等于b")
a小于等于b
x = 0
if x>0:print("x为正")
elif x==0:print("x为0")
else:print("x为负")
x为0
for i in range(5):#(1,2,3,4,5):#[1,2,3,4,5]:#[1,2,3,3,4]#列表元组集合字典字符串都行print(i)
0
1
2
3
4
i=1
while i<10:print(i)i=i+1
1
2
3
4
5
6
7
8
9
#判断,循环一起连用
for i in [1,2,3,4,5,6,7,8,9]:if(i%2)==1:print(i)
1
3
5
7
9

注意语句块一定要缩进,缩进要一致,最好是一个tab,美观整洁方便

{3,4,5,6,3,1,2,3}
{1, 2, 3, 4, 5, 6}

(4)列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

list(range(1,11)) #range(1,11)迭代器,左闭右开,只有一个参数从0开始,两个参数是区间,三个参数最后一个数是跨度,不写的时候默认跨度为1
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[x**2 for x in range(1,10)] #列表生成平方
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[i for i in range(1,100) if i%10 == 0]
[10, 20, 30, 40, 50, 60, 70, 80, 90]
[str(x) for x in range(1,10)]
['1', '2', '3', '4', '5', '6', '7', '8', '9']
[int(x) for x in list("123456789")]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

1.2 Python函数

(1)内置函数(可以在Python网站上查的到)

abs(-1)
1
a =[2,3,1,-4,12,6]
max(a)
12
min(a)
-4
sum(a)#求和
20

(2)自定义函数

函数function,通常接受输入参数,并有返回值

它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

函数通常有以下几个特征

1、使用def关键词来定义一个函数。

2、def后面是函数的名称,括号中是函数的参数,不同的参数用,隔开,def func():的形式是必须要有的,参数可以为空。

3、使用缩进来划分函数的内容。

4、return返回特定的值,如果省略,返回None。

def add(x,y):a = x+yreturn a
print(add(2,3))
5

使用函数时,只需要讲参数换成特定的值传给参数。

Python并没有限定参数的类型,因此可以使用不同的参数类型:

print(add(1,2.3))
3.3

在这个例子中,如果传入的两个参数不可以相加,那么Python将会报错

#print(add(2,'a')) #报错
print(add('2','a'))
2a

如果传入的参数与实际不符合,也会报错

#add(1) #报错

可以在函数定义的时候给参数设定默认值,例如

def func(x,a=1,b=0,c=0):return a*x**2+b**x+c
func(10)
func(10,1,1,1)
102

一个函数也可以返回多个返回值

def f(x):return x**2,x**3
f(2) #返回元组
(4, 8)

2.第一次课作业

(1)python基础语法。

(1)下面两段代码输出的结果相同么?请解释原因。
① x=4,y=5,print(x+y)
② x=‘4’,y=‘5’, print(x+y)

x1=4
y1=5
print(x1+y1)
x='4'
y='5'
print(x+y)
9
45

(2)‘10/3’,‘10//3’和’10%3’结果相同么?请说明原因。

print(10/3,' ',10//3,' ',10%3)
3.3333333333333335   3   1

(3)string1=‘I’m a student.’ 。print(string1)结果会报错么?如何修改string1使其得到正确的输出?

string1="I m a student."
print(string1)
I m a student.

(4) a = 3,str(a*3) + str(a)*3的输出是什么?

a=3
str(a*3)+str(a)*30
'9333333333333333333333333333333'

(5)my_string = ‘this is my string’, 如何查看这个字符串长度?

my_string = 'this is my string'
len(my_string)
17

(6)a,b = 4,5,a大于b 或 b大于等于5。请写出这里逻辑运算的代码,并查看输出会是什么。

a,b=4,5
print((a>b)|(b>=5))
True

(7)'=‘和’=='分别表示什么含义?print(2==5)输出什么结果?属于什么类型数据?

print(2==5)
False

(8)计算:100%(2+2)**3//5

print(100%(2+2)**3//5)
print(100%64//5)#先乘方,再取模,再整除
7
7

(9)a,b = 4,5,a *= b,a=?

a,b=4,5
a*=b
a
20

(10)int(3.14159)==float(3)会输出什么结果?为什么?type(int(3.14159))==type(float(3))的结果又是什么?

int(3.14159)==float(3)
print(float(3))
print(3.0==3)
type(int(3.14159))==type(float(3))
3.0
Truefloat

(2)列表,字典,集合

(1)L=[1,2,3,4,1,4,5,6],请完成:①删除列表中的重复元素并输出一个集合;②将7添加到集合中;③将集合转化为列表,删除元素3.

L=[1,2,3,4,1,4,5,6]
L=set(L)
print(L)
L.add(7)
print(L)
L=list(L)
# del L[3]#按照索引删除
# L.pop(3)#按照索引删除
L.remove(3)#按值删
print(L)
print(L.index(7))#获取索引
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7}
[1, 2, 4, 5, 6, 7]
5

(2)dog = [“tom”, “jack”, “Collie”, “Marry”], kitty = “Marry”, 如何判断 kitty 是否是 dog 中的一员?

dog = ["tom", "jack", "Collie", "Marry"]
kitty = "Marry"
if kitty in dog:print('YES')
YES

(3)dog = [“tom”, “jack”, “Collie”, “Marry”],将dog逆序。

dog = ["tom", "jack", "Collie", "Marry"]
print(dog[::-1])
for i in reversed(dog):#不会改变副本print(i)
dog.reverse()
dog
['Marry', 'Collie', 'jack', 'tom']
Marry
Collie
jack
tom['Marry', 'Collie', 'jack', 'tom']

(4)L=[“former”, “latter”, “starboard”],请完成:为L在末端添加一个元素“port”。

L=["former", "latter", "starboard"]
L.append("port")
L
['former', 'latter', 'starboard', 'port']

(5)L=[1,2,3,1,5,11,3,6,4,2,5,8,4,2],计算L的最值,和加和。

L=[1,2,3,1,5,11,3,6,4,2,5,8,4,2]
print(max(L),'\n',sum(L))
11 57

(6)cube:length:40,width:40,height:40, 请创建一个字典,包括cube的所有信息,并向字典中添加条目“color”和对应值"red",
删除属性height,修改属性width为20.

dic={"length":40,"width":40,"height":40}
dic["color"]="red"
print(dic)
dic["width"]=20
dic.pop("height")
print(dic)
{'length': 40, 'width': 40, 'height': 40, 'color': 'red'}
{'length': 40, 'width': 20, 'color': 'red'}

(7)set_a = {1, 5, 10} set_b = {1, 10, 12} 找出set_a和set_b中共有的元素(交集)。

set_a = {1, 5, 10}
set_b = {1, 10, 12}
print(set_a&set_b)
{1, 10}

(8)从1到10中选出所有的奇数。

[x for x in range(1,11) if x%2==1]
[1, 3, 5, 7, 9]

(9)将字典变为两个元素一一对应的列表,一个只含有关键字,另一个只含有值。 如:{‘a’: 1, ‘b’: 2}变为[‘a’, ‘b’], [1, 2]

dic={'a': 1, 'b': 2}
a=list(dic.keys())
b=list(dic.values())
c=list(dic.items())
print(a,b,c)
['a', 'b'] [1, 2] [('a', 1), ('b', 2)]

(3)条件判断,循环和函数

(1)L=[1,2,‘’,‘my’,3,‘name’,‘is’,4,‘katty’],利用循环语句和判断条件,分别输出列表中的字符串和数字。

L=[1,2,'','my',3,'name','is',4,'katty']
string=[]
num=[]
for i in L:
#     print(type(i))if str(type(i))=="<class 'int'>":num.append(i)else:string.append(i)
print(string)
print(num)
['', 'my', 'name', 'is', 'katty']
[1, 2, 3, 4]

(2)利用循环语句输出1到50中5的倍数,将其存放到一个列表中。

[i for i in range(1,51) if i%5==0]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

(3)定义一个判断字符串的长度是否大于10的函数。

def fun(string):return len(string)>10
s="4548404446648878877"
if fun(s):print("YES")
YES

(4)定义一个求解阶乘的函数。

def JC(a):return 1 if a==1 else a*JC(a-1)
#     if a==1:
#         return 1
#     else:
#         return a*JC(a-1)
print(JC(5))
120

(5)利用列表生成式,生成1-5的阶乘。

[JC(i) for i in range(1,6)]
[1, 2, 6, 24, 120]

(6)利用函数和列表生成式,标记一个列表,奇数标记为1,偶数标记为2,并且统计一下奇数和偶数的数量。
例如:[1,4,2,4,2,9,5],得到[1,2,2,2,2,1,1]

def fun(i):return 1 if i%2==1 else 2
L=[1,4,2,4,2,9,5]
l=[fun(i) for i in L]
print(l)
x=[i%2 for i in l]
print("有奇数{}个,偶数{}个".format(sum(x),len(x)-sum(x)))
# print(fun(3))
[1, 2, 2, 2, 2, 1, 1]
有奇数3个,偶数4个

Python数据分析训练营——Python基础语法相关推荐

  1. Python数据分析训练营——Python数据分析之Panads-1

    文章目录 python数据分析之Panads-1 1.1 Panads基本介绍 Pandas 基本数据结构 1.2 Pandas库的series类型 索引--数据的行标签 值 1.3 Pandas库的 ...

  2. Python数据分析训练营——Python数据分析之Numpy

    文章目录 Python数据分析之Numpy 1.Numpy的数组对象及其索引 数组上的数学操作 产生数组 数组属性 索引和切片 多维数组及其属性 多维数组索引 多维数组切片 切片是引用 花式索引 一维 ...

  3. python数据分析002—python基础语法

    本文为在猴子老师社群中学习python数据分析的第二关任务,主要是学习python中的一些基础语法,并通过一些简单代码展示出来. 数据类型:字符串(String)¶#案例1:定义字符串 nameStr ...

  4. Python数据分析——NumPy数值计算基础(二)

    Python数据分析--NumPy数值计算基础(二) 思维导图: 数据的csv文件存取 csv(Comma-Separated Value,逗号分隔值)文件:是一种常见的文件格式,用来存储批量数据. ...

  5. 【Python自动化运维】Python环境安装及基础语法

    [Python自动化运维]Python环境安装及基础语法 1. Python环境安装 2. Python基础语法 1. Python环境安装   pyenv官方安装手册:https://github. ...

  6. Python 实例教学_01_基础语法

    Python 实例教程 教学方法 课前准备 要求 Python 实例教学_01_基础语法 [Python 教学](https://blog.csdn.net/weixin_43955170/categ ...

  7. 为什么学习Python数据分析,python数据分析有什么用?

    一.首先我们先说说为什么学习Python数据分析 互联网时代,我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万-- 这些庞大的数字,意味着什 ...

  8. 【阿里内部教程】python初阶:基础语法 python全栈自动化测试系类

    目录 很多小伙伴可能都没有看过凡哥的视频,所以大家可能对凡哥不是很了解这里先和大家来个自我介绍 凡哥我已经有着十二年互联网自动化测试和测试开发工程师,拥有丰富的自动化测试平台及测试开发经验,擅长接口测 ...

  9. python汇编指令_Python基础语法

    阅读目录: 第一节:编程基础 第一节:编程基础 第二节:语言分类 第三节:高级语言的发展 第四节:程序program 第五节:Python解释器 第六节:Python基础语法 第七节:程序控制 第八节 ...

最新文章

  1. mysql 2013错误解决
  2. XCode 7上传遇到ERROR ITMS-90535 Unexpected
  3. linux zsh命令行vim命令补齐,Linux使用zsh提高效率的5条建议
  4. Windows 安装MySQL5.7.0+ 服务
  5. GraphPad Prism:如何在轴上放置一个或多个缺口?
  6. vue 点击倒计时 ajax 封装
  7. SpringBoot_web开发-【实验】-登陆拦截器
  8. mysql索引底层图_MySQL索引底层数据结构
  9. 『设计模式』80年代的人们就已经领悟了设计模式-- 发布者/订阅者模式 (包括发布者/订阅者模式和观察者模式的区别)
  10. famous javascript library.
  11. ActiveMQ消费者平滑关闭
  12. matlab 三维绘制
  13. 对抗微软?索尼36亿美金收购游戏开发商Bungie
  14. java web mvc spring_Java下Web MVC的领跑者:SpringMVC
  15. 个人技术博客(α)------javaweb的学习路程
  16. python极客项目编程pdf微盘下载_Python极客项目编程
  17. 仿真的硬件选型原则:CPU
  18. 2021-08-10小米盒子3增强版挂U盘刷v1.46版历程
  19. word中怎么加脚注不分栏_如何在Microsoft Word 2010中使用脚注
  20. 微信小程序获取年月日周及早上、中午、晚上

热门文章

  1. elasticsearch 学习笔记3
  2. CP56time2a是什么格式?
  3. 静态方法不能调用非静态方法的原因
  4. 物联网云平台的优势有哪些
  5. CTF刷题记录CTFHub-RCE-命令注入
  6. sqli-labs通关攻略23-37[Advanced Injections]
  7. 终端插双电信卡都能打电话么?
  8. c语言写骷髅病毒源码,骷髅病毒分析报告
  9. 题目:给定一个整数数组 nums 和一个整数目标值 targ数,并返回它们的数组下标。
  10. python货币兑换_用python计算货币兑换