python学习笔记(一)

1.py交互模式
命令行下输入python进入交互模式,可写py代码,输入exit()再按回车退出交互模式
2.运行.py文件
python xx.py
3.Linux上直接运行.py脚本
在文件开头加上注释:#!/usr/bin/env python3
然后给该文件加上可执行权限:
chmod a+x xx.py
之后就可以./xx.py运行了
ps:总是报错说找不到env,度娘也找不到答案,感觉大概是系统装了太多版本的py
4.print()函数
打印出指定文字,把希望打印的文字用单引号或双引号括起来
接受多个字符串时用逗号隔开
py2会吧括号显示出来,py3就不会了
想打印出引号要加/作转义字符,//则显示/
如果很多字符不需要转义,加上r'xxxxx'
这之间的字符不会被转义
通常用print('''
xx
xx
xx''')来表示多行内容
5.input()函数
name=input()可以直接接收输入字符串
name=input('请输入你的名字')这样可以起到提示输入作用
input的返回值为str类型,若要当整数使用用int函数转换
6.布尔运算
值要么是True,要么是False
and表示与运算,or表示或运算,not表示非运算
7.动态语言特效
py运行给同一个变量赋不同类型的值,比如定义时:
a=123
a=‘ABC’
这样是允许的
通常全部大写表示常量,如PI
8.除法
/表示除法,即使结果为整数也会表示为浮点数
//表示地板除,结果永远为整数
9.字符编码
py3中采用的是Unicode编码
ord函数可以用来将字符转化为编码的整数表示
比如:ord('A')就会得到A的Unicode编码65
ord('中')可以得到编码20013
chr函数可以讲编码转换为对应的字符
chr(66)就可以得到B
chr(25991)可以得到文
一个字符对应若干字节,如果要在网络上传输,要将str变为字节单位bytes
bytes类型数据带前缀b加引号表示
x = b'ABC'
str字符串可以通过encode函数编码为指定的bytes
'ABC'.encode('ascii')
b'ABC'
这样将'ABC'用ascii的方式变为了bytes字节
注意:中文编码超过了ascii范围,要用utf-8或者gbk的方式来编译,否则报错
同理可以讲字节bytes通过decode来解码
len函数可以来求字串长度
py脚本为了让解释器按utf-8编码读取,通常在文件开头加上:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码
10.格式化字串
占位符和c语言一致,输出时稍有不同
'Hi, %s, you have $%d.' % ('Michael', 1000000)
结果:'Hi, Michael, you have $1000000.'
不确定类型时可用%s,它会讲任何数据类型转化为字符串
若要输出%,两个%可表示
format函数也可格式化字符串,它会讲传入参数依次替换占位符{0},{1},{2}...
'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
结果:'Hello, 小明, 成绩提升了 17.1%'
可用用过replace函数将相应的字符串/字符替换:
a = 'abc'
a.replace('a', 'A')
注意只是函数返回的字串变了,a字串本身不变
11.list
classmates = ['Michael', 'Bob', 'Tracy']
classmates就是一个list,可用用len(classmates)来求其元素个数
classmates[0],classmates[1]..可用依次取用这些元素
classmates[-1]可用直接取最后一个元素,-2,,-3同理
可用通过append函数往list中添加元素
classmates.append('Adam')往末尾添加了一个元素
也可以添加入指定位置:
classmates.insert(1,'jack')
pop函数不加参数可以删除末尾元素,classmates.pop(1)则会删掉索引为1的元素
可用直接赋值替换掉元素内容,各个元素类型可用不同,可用是一个变量,元素也可以是一个list
12.tuple
tuple叫做元祖,也是一种有序元组,和list相似,但是tuple一旦初始化便不能再修改,没有append和insert这种函数,可正常使用classmates[0]这种元素,但不能进行修改,tuple使得代码更安全
t = (1,2)
如果要定义一个空元组
写成
t = ()
只有一个元素时,为了和数学的小括号区分,写成
t = (1,)
当tuple元素为list时list元素可变
13.判断语句
eg1:
age = 3
if age >= 18:
    print('your age is', age)
    print('adult')
else:
    print('your age is', age)
    print('teenager')
eg2:
age = 3
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')
14.循环语句
for-in循环:
eg:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)
计算1-10的和:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)
计算1-100的和,可用range函数,会生成一个整数序列,再通过list函数转化为list:
sum = 0
for x in range(101):
    sum = sum + x
print(sum)
15.break和continue
和c语言相同,一般配合if使用
eg1:
n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')
eg2:
n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)
16.dict
py内置的字典dict,其他语言中成为map键值对,具有极快的查找速度
eg:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael']则显示95
放入字典中除了初始化赋值,也可以直接赋值:
d['Adam'] = 67
用'Thomas' in d这种方法可用判断key是否存在
d.get('Thomas')则可用返回相应的值,若不存在贼返回None,不想返回None也可用自己指定
d.get('Thomas',-1)则找不到时返回-1
同list,可用pop(key)来删掉元素
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
17.set
set和dict类似,但不储存value,只判断是否存在,并且元素不能重复
s = set([1, 2, 3])
若有重复元素则不会继续添加进set,通过add函数可添加函数
remove函数可用删除元素,两个set之间可用做交集,并集操作
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2
{2, 3}
s1 | s2
{1, 2, 3, 4}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值