日常python学习-1

做两个星期的python练习

感觉再不自己写写代码手就生了.想法是过一下廖雪峰老师的教程,看一下python3.之前的话总是需要用的时候查查用用,而且用的是Python2. Python还是值得作为常用语言的,毕竟这么高效方便.本学期需要用Django.之后可能需要tensorflow.再就是玩爬虫的时候以及分析数据的时候各种常用的库均源于python.做个记录,然后方便查询.完成训练之后也可以整理一下.


2018.3.8

1.写py脚本指定编码方式,在文本开头添加:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

解释:第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序. 第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码. 当然,除了申明这里以外,也要保证文本编辑器是使用的utf-8编码.

2.格式化的写法

python的格式化输出与C语言几乎一样.格式化的意思是用%占位符放到前面,然后相应的值补充在后.举例

str = 'hello, %s' % 'world'
sentence = 'there are %d apples on the %s' % (2,'desk')

这里写图片描述

控制小数点位数: 比如规定2位小数:

print('adding rate is %.2f' % rate)

ps: 如果要在字符串中输出%,使用%转义即可:

example = 'growth rate: %d %%' % 7
3.list 和 tuple
  • list 和 tuple 的内容都可以是多样的,字符串,数,或者是嵌套的tuple或者list.
  • list的索引可以倒数着写: example[-1] 意思就是倒数第一个元素
  • len()函数
  • list末尾增加元素用append:
classmates = ['Michael', 'Bob', 'Tracy']
classmates.append('Adam')
  • list按索引插入元素:
classmates.insert(1,'jack')
  • list 的 pop() 默认移除末尾元素,添加索引移除索引元素

  • tuple没什么好说的,记住是不可边元素

4. 条件判断
bool = 1
if bool > 0:
    print('positve')
elif bool == 0:
    print('zero')
else:
    print('negative')
5.循环
  • 计算1加到100:记住range是左闭右开
sum = 0
for i in range(101):
    sum += i
print(sum)
  • while循环
sum = 0
n = 99
while n >= 0:
    sum += n
    n--
print(sum)
  • break和continue的用法大家都一样
n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)
6.dict

dict用的是hash定位的,因此key都要放不可变的对象

  • dict和STL里的map用法一样,python里是用花括号表示,新建和添加可以如下操作
di = {'Bob':100,'Jack':96,'Nacy':99}
di['Mike'] = 88
  • 判断key存在的话可以用in语法或者get()方法 (get方法不带第二个参数表示会返回none.)
>>> 'Thomas' in d
False

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
  • 如果要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
d.pop('Bob')

pop()函数是有返回值的,即对应key的value.

7. set

set和数学上的集合的概念是一样的,可以做交或者并.

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

>>> s.add(4)
>>> s
{1, 2, 3, 4}

>>> s.remove(4)
>>> s
{1, 2, 3}

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

基本操作就这样,记住set也只能放不可边对象.

8.写函数
  • 写法没什么好讲的,看两个例子就懂了,默认值什么的和其他高级语言一样.返回多个值的时候其实返回的是tuple
def test_function(x):
    if x>0:
        return x
    else:
        return -x   


def nop():
    pass


def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

把写好的函数放到function.py里,然后在目标文件路径下打开terminal进入交互式界面可以用import来引用函数:

from function import move

此时就可以使用move函数了. 另外,pass是占位符,为了满足语法占位用的.

  • 参数检查
    如果想要是用的时候解释器做参数检查,那写函数的时候记得添加参数检查raise错误,使用isinstance来检查类型
def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值