数据分析实战45讲 笔记(二)python基础语法

1.1 输入与输出

name=input("what's your name?")
print('hello %s' %name)
#%name代表变量的值,%s因为输入是字符类型,所以用%s代替

1.2 判断 if else语句

socre=input("what's your score?")
if int(socre)>=90:
   print("Excellent")
else:
    if int(score)<60:
       print("fail")
    else:
       print("Good job")
#注意缩进

1.3 循环语句 for in 

sum=0
for number in range(11):
   sum=sum+number
print(sum)
#for循环迭代循环相同的内容,可以通过定义range来确定循环次数,range(11)指循环执行循环体10次(即0-10),相当于range(0,11)因为 python是左闭右开的,
#也可以用range指定步长 rang(0,11,2)指的是[0,2,4,6,8,10]

1.4 while循环

sum=0
number=1
while number<11:
     sum=sum+number
     number=number+1
print(sum)
#1到10 求和
#while适合循环次数不确定,for循环条件相对稳定,适合固定次数的循环

2.1数据类型 列表,元组,字典,集合

     2.1.1 列表

              列表与元组类似,其很多函数可以交叉使用

              与元组对⽐,列表的⻓度可变、内容可以被修改

    在列表中检查是否存在某个值远⽐字典和集合速度慢,因为 Python是线性搜索列表中的值,但在字典和集合中,在同样的时
间内还可以检查其它项(基于哈希表)。
#列表的增删改查排序等简单操作
List=['a','b','c']
print(list)
list.append('d')   #在列表尾部添加元素
print(len(list))   #结果为4
list.insert(1,'mm')#在列表下标为0处插入元素mm
list.pop()         #删除尾部元素
list.pop(2)        #pop是用来删除并返回指定下标的,返回b
list.remove('c')   #remove用来去除指定内容,只去除第一次出现该内容的位置
'a' in list        #判断list内是否存在该内容,或用 not in
list_sort=[5,73,3,9]
list_sort.sort()   #输出结果为排好序的数组(原地排序,不创建新对象),注意sort函数的一些选项,可以根据选项进行排序
sorted([7,1,2,6,0,3,2])#返回[0,1,2,2,3,6,7],该函数可以从任意序列的元素返回一个新的排好序的列表

#list函数常⽤来在数据处理中实体化迭代器或⽣成器:
gen=range(10)
list(gen)#输出结果为[0,1,2,3,4,5,6,7,8,9]

#与元组类似,可以通过串联操作‘+’来连接两个列表
list1=[1,2,3]
list2=['a','b','c']
list3=list1+list2
#也可以用extend来追加多个元素,显然extend效率比串联高
list4=list3.extend([4,5,6])

#切片
seq=[7,2,3,7,5,6,0,1]
seq[1:5]#返回[2,3,7,5] 左闭右开,如果省略起始元素或结束元素,则默认序列的开头或结尾;负数表明从后向前切片,例如:seq[-4:] 返回[5,6,0,1];seq[-6,-2]返回[6,3,5,6]
seq[::2]#返回[7,3,3,6,1] 2表示步长
seq[::-1]#可以表示将列表或元组颠倒过来

#zip函数
seq1=['foo','bar','baz']
seq2=['one','two','three']
zipped=zip(seq1,seq2)#返回[('foo','one'),('bar','two'),('baz','three')]
#zip也可以处理任意多的序列,元素的个数取决于最短的序列

#reversed函数 可以从后向前迭代一个序列
list(reversed(range(10)))#返回[9,8,7,6,5,4,3,2,1]
#reversed是一个生成器,只有实体化(即列表或for循环)之后才能创建翻转的序列



           2.1.2 元组
                    元组是一个固定长度,不可改变的python序列对象。
#创建元组
tuples=('tupleA','tupleB')
nested_tup=((4,5,6),(7,8))
#用tuple可以将任意序列或迭代器转换为元组
tuple([4,5,2])#返回(4,5,2)
tup=tuple('string')#tup=('s','t','r','i','n','g')
#可以用方括号访问元组中的元素
tup[0]#返回's'
#虽然元组的对象元素不可变,但是如果元组中的某个对象是可变的,可在原位进行修改
tup=tuple(['foo',[1,2],True])
tup[1].append(3)#tup变为('foo',[1,2,3],True)
#加号将元祖串联
(4,None,'foo')+(6,0)+('bar',)#返回(4,None,'foo',6,0,'bar')
#元组乘以一个整数,会将几个元祖的复制串联起来
('foo','bar')*4#返回('foo','bar','foo','bar','foo','bar','foo','bar') 对象本身没有被复制,知识引用了它

#count方法,计数
a=(1,2,2,,3,4)
a.count(2)#返回2


          2.1.3 字典(哈希映射或关联数组)

                   是键值对的大小可编辑和,键和值都是python对象

#定义一个字典
score={'guanyu':95,'zhangfei':96}
#添加一个元素
score['zhaoyun']=98
print(score)#返回{'guanyu':95,'zhangfei':96,'zhaoyun':98}
#访问
score['guanyu']#返回95
#删除值
del score['zhangfei']#将zhangfei与96这以键值对删去
#pop也用来删除,但是会返回对应键的值
#keys与values是字典的键和值的迭代器方法,虽然键值对没有顺序,这两个方法可以用相同的顺序输出键和值
list(score.keys())#返回['guanyu','zhangfei','zhaoyun']
list(score.values())#返回[95,96,98]
#update方法可以将一个字典与另一个融合,原地改编字典,因此任何传递给update的键的旧的值都会被舍弃
score.update({1:'foo',2:12})#返回{'guanyu':95,'zhangfei':96,'zhaoyun':98,1:'foo',2:12}

#用两个序列配对组合成字典
mapping={}
for key,value in zip(key_list,value_list):
    mapping[key] =value

#dict可以接受2元元组的列表:
mapping=dict(zip(range(5),reversed(range(5))
#返回{0:4,1:3,2:2,3:1,4:0}

          2.1.4 集合

                    集合式无序的不可重复的元素的集合。可以把它当做字典,但是只有键没有值

#创建集合
set([2,2,2,1,3,3])#返回{1,2,3}
{2,2,2,1,3,3}#返回{1,2,3}

#集合支持合并,交集,差分和对称差等数学集合运算,原地操作
a={1,2,3,4,5}
b={3,4,5,6,7,8}
a.union(b)#返回并集
a|b#返回交集
a.intersection(b)#返回交集
a&b#交集

#与字典类似,集合元素通常是不可变得。要获得类似列表的元素,必须转换成元祖
data=[1,2,3,4]
set={tuple(my_data)}#set返回{(1,2,3,4)}
#检查子集或父集:issubset(),issuperset()
#集合的内容相同时,集合对等
{1,2,3}=={3,2,1}#返回True

3 函数

函数使用def关键字声明,用return关键字返回值

函数代码块以def关键词开头,后接函数标识符名称和圆括号,在圆括号里是传进来的参数,然后通过return进行函数结果得反馈。

def addone(score):
    retun score+1
print addone(99)

练习题:

  1. 如果我想在Python中引用scikit-learn库该如何引用?pip install scikit-learn import scikit-learn

  2. 求1+3+5+7+…+99的求和,用Python该如何写?

    #法一:
    sum=0
    for number in range(1,100,2):
        sum=number+sum
    print(sum)
    #法二:
    print(sum(range(1,100,2)))
    #法三:
    sum=0
    number=1
    while number<100:
        sum=number+sum
        number+=2
    print(sum)

     

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值