Python基础

直接运行.py文件

(Mac和Linux下,且正常运行为$ python hello.py)
1,在.py文件的第一行加上特殊注释 #!/usr/bin/env python3
2,通过命令给hello.py以执行权限 $ chmod a+x hello.py
3,就可以直接运行hello.py $ ./hello.py
注:Mac中也可以直接使用Python自带的shell。

数据类型和变量
  • 字符串
    1,允许用r''表示''内部的字符串默认不转义;
    2,允许用'''...'''的格式表示多行内容:
# 命令行
>>> print('''line1
... line2
... line3''')
line1
line2
line3
# 程序
print('''line1
line2
line3''')
  • 变量
    1,变量在计算机内存中的表示:
# Python解释器干了两件事情:
# 在内存中创建了一个'ABC'的字符串;
# 在内存中创建了一个名为a的变量,并把它指向'ABC'。
a = 'ABC'
# a是变量,而'abc'才是字符串对象。
# replace方法创建了一个新字符串'Abc'并返回,并没有改变字符串'abc'的内容。
# 对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。
# 相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc' 
字符串与编码
  • 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
  • python字符串
# ord()函数获取字符的整数表示
>>> ord('A')
65
>>> ord('中')
20013
# chr()函数把编码转换为对应的字符
>>> chr(66)
'B'
>>> chr(25991)
'文'
# 以Unicode表示的str通过encode()方法可以编码为指定的bytes
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
  • 格式化
# 格式化整数和浮点数可以指定是否补0和整数与小数的位数:
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
list和tuple
  • list
    list是一种有序可变的集合:
# 变量classmates就是一个list
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
# 可以用-1做索引,直接获取最后一个元素
>>> classmates[-1]
# 可以往list中追加元素到末尾
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
# 也可以把元素插入到指定的位置,比如索引号为1的位置:
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'
# 要删除list末尾的元素,用pop()方法:
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
# 要删除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
# 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']
# list里面的元素的数据类型也可以不同,比如:
>>> L = ['Apple', 123, True]
# list排序
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
  • tuple
    tuple是有序不可变的列表,一旦初始化就不能修改。tuple所谓的“不变”,是tuple的每个元素,指向永远不变。
# 只有1个元素的tuple定义时必须加一个逗号,来消除歧义(因为括号()既可以表示tuple,
# 又可以表示数学公式中的小括号):
>>> t = (1,)
>>> t
(1,)
条件判断
# 因为input()返回的数据类型是str,str不能直接和整数比较,
# 必须通过int()函数把str转换成整数;
# 如果int()函数发现一个字符串并不是合法的数字时就会报错
s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')
循环
  • for...in循环
    依次把list或tuple中的每个元素迭代出来
# for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句
names = ['Michael', 'Bob', 'Tracy']
for name in names:
     print(name)
# range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
>>> list(range(5))
[0, 1, 2, 3, 4]
# 计算1-100的整数之和,可以用一个sum变量做累加
sum = 0
for x in range(101):
    sum = sum + x
print(sum)
  • while循环
    只要条件满足,就不断循环,条件不满足时退出循环
# 计算100以内所有奇数之和,在循环内部变量n不断自减,
# 直到变为-1时,不再满足while条件,循环退出
sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
dict和set
  • dict
    dict是key-value存储方式,根据key算出value的存储位置,作为key的对象就不能变(哈希算法)。
    注意:dict内部存放的顺序和key放入的顺序是没有关系的。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
# 通过in判断key是否存在:
>>> 'Thomas' in d
False
# 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
# 删除一个key,用pop(key)方法,对应的value也会从dict中删除:
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
  • set
    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。显示的顺序也不表示set是有序的
# 要创建一个set,需要提供一个list作为输入集合,重复元素在set中自动被过滤
>>> s = set([1, 1, 2, 3])
>>> s
{1, 2, 3}
# 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
# 通过remove(key)方法可以删除元素:
>>> s.remove(4)
>>> s
{1, 2, 3}
# set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,897评论 0 3
  • 简介 Python是开源的Python由很多解释器:CPython(官方),IPython(增强交互模式),PyP...
    齐天大圣李圣杰阅读 319评论 0 3
  • 目录最重要的工具PIP, 以及常用的网站,IDE推荐 基本概念 函数 进阶概念:装饰器,迭代器,列表推导式,匿名函...
    六合鱼阅读 242评论 0 0
  • 数据类型 整数 Python的整数没有大小限制 浮点数 Python的浮点数也没有大小限制,但是超出一定范围就直接...
    折叠小猪阅读 252评论 0 0
  • pyhton基础 缩进方式 Python的语法比较简单,采用缩进方式。 以#开头的语句是注释。语句以冒号:结尾时,...
    hawflakes阅读 348评论 1 1