Python基础(二)

判断语句

if-else

if 条件:
    满足条件时要做的事情1
    满足条件时要做的事情2
    满足条件时要做的事情3
    ...(省略)...
else:
    不满足条件时要做的事情1
    不满足条件时要做的事情2
    不满足条件时要做的事情3
    ...(省略)...

elif

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3

注:elif可以和else搭配一起使用。

if xxx1:
    事情1
elif xxx2:
    事情2
else:
    事情3

if嵌套

if 条件1:

    满足条件1 做的事情1
    满足条件1 做的事情2
    ...(省略)...

    if 条件2:
        满足条件2 做的事情1
        满足条件2 做的事情2
        ...(省略)...

注:

  • 外层的if判断,也可以是if-else
  • 内层的if判断,也可以是if-else
  • 根据实际开发的情况,进行选择

示例:

chePiao = 1     # 用1代表有车票,0代表没有车票
daoLenght = 9     # 刀子的长度,单位为cm

if chePiao == 1:
    print("有车票,可以进站")
    if daoLenght < 10:
        print("通过安检")
    else:
        print("没有通过安检")
else:
    print("没有车票,不能进站")

循环语句

while循环

while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...

示例:

i = 0
while i<5:
    print("当前是第%d次执行循环"%(i+1))
    print("i=%d"%i)
    i+=1

while循环嵌套

while 条件1:

    条件1满足时,做的事情1
    条件1满足时,做的事情2
    条件1满足时,做的事情3
    ...(省略)...

    while 条件2:
        条件2满足时,做的事情1
        条件2满足时,做的事情2
        条件2满足时,做的事情3
        ...(省略)...

示例:打印如下图形

*
* *
* * *
* * * *
* * * * *

代码:

i = 1
while i<=5:

    j = 1
    while j<=i:
        print("* ",end='')
        j+=1

    print("\n")
    i+=1

for循环

for 临时变量 in 列表或者字符串等:
    循环满足条件时执行的代码
else:
    循环不满足条件时执行的代码

示例:

name = 'hello'

for x in name:
    print(x)

break和continue

  • break的作用:用来结束整个循环
  • continue的作用:用来结束本次循环,紧接着执行下一次的循环
  • break/continue只能用在循环中,除此以外不能单独使用
  • break/continue在嵌套循环中,只对最近的一层循环起作用

字符串

python中字符串的格式

如下定义的变量a,存储的是字符串类型的值.

a = "hello"
或者
a = 'hello'

注:Python字符串双引号或者单引号皆可

字符串输出

a = 'hello'
print a

字符串输入

  • Python2:raw_input()、input()
  • Python3:input()

字符串的下标

字符串实际上就是字符的数组,如果有字符串:name = 'abcdef',在内存中的实际存储如下:

如果想取出部分字符,那么可以通过下标的方法(注意python中下标从0开始):

name = 'abcdef'

print(name[0])
print(name[1])
print(name[2])

字符串的切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长],选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

示例1:

name = 'abcdef'

print(name[0:3]) # 取 下标0~2 的字符
print(name[0:5]) # 取 下标为0~4 的字符
print(name[3:5]) # 取 下标为3、4 的字符
print(name[2:])  # 取 下标为2开始到最后的字符
print(name[1:-1]) # 取 下标为1开始 到倒数第2个之间 的字符

示例2:

 >>> a = "abcdef"
 >>> a[:3]
 'abc'
 >>> a[::2]
 'ace'
 >>> a[5:1:2] 
 ''
 >>> a[1:5:2]
 'bd'
 >>> a[::-2]
 'fdb' 
 >>> a[5:1:-2]
 'fd'

字符串常见操作

定义字符串mystr = 'hello world python2 and python3',以下是常见的操作。

find

检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1。

mystr.find(str, start=0, end=len(mystr))

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.find("world")
6
>>> mystr.find("world", 0, 7)
-1

index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常

mystr.index(str, start=0, end=len(mystr)) 

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.index("world", 0, 7)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

count

返回 str在start和end之间 在 mystr里面出现的次数
跟find()方法一样,只不过如果str不在 mystr中会报一个异常

mystr.count(str, start=0, end=len(mystr))

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.count("python")
2

replace

把mystr中的str1替换成str2,如果count指定,则替换不超过count次。执行replace后,mystr不变

mystr.replace(str1, str2,  mystr.count(str1))

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.replace("python", "PYTHON",  mystr.count("python"))
'hello world PYTHON2 and PYTHON3'
>>> mystr.replace("PYTHON", "python", 1)
'hello world python2 and python3'
>>> mystr.replace("python", "PYTHON", 1)
'hello world PYTHON2 and python3'

split

以str为分隔符切片mystr,如果maxsplit有指定值,则仅分隔maxsplit 个以str为分隔子字符串,也就是maxsplit+1个字符串。

mystr.split(str=" ", maxsplit)    

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.split(" ")
['hello', 'world', 'python2', 'and', 'python3']
>>> mystr.split(" ", 2)
['hello', 'world', 'python2 and python3']

capitalize

把字符串的第一个字符大写

>>> mystr = 'hello world python2 and python3'
>>> mystr.capitalize()
'Hello world python2 and python3'

title
把字符串的每个单词首字母大写

>>> a = "hello"
>>> a.title()
'Hello'

startswith

检查字符串是否是以obj开头, 是则返回True,否则返回False。

mystr.startswith(obj)

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.startswith("hello")
True
>>> mystr.startswith("Hello")
False

endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.

mystr.endswith(obj)

lower

转换 mystr 中所有大写字符为小写

mystr.lower()  

upper
转换mystr中的小写字母为大写

mystr.upper()    

ljust

返回一个原字符串左对齐,并使用空格填充至长度width的新字符串。当width小于字符串长度,不会切片

mystr.ljust(width) 

示例:

>>> mystr = "hello world"
>>> mystr.ljust(15)
'hello world    '
>>> mystr.ljust(6)
'hello world'

center

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

mystr.center(width)

lstrip

删除mystr左边的空白字符。

mystr.lstrip()

rstrip

删除 mystr 字符串末尾的空白字符。

mystr.rstrip()

strip

删除mystr字符串两端的空白字符。

mystr.strip()

rfind

类似于find()函数,不过是从右边开始查找,查找到第一个符合的返回其地址。

mystr.rfind(str, start=0, end=len(mystr))

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.rfind("python")
24

rindex

对应的,类似于 index(),不过是从右边开始。

mystr.rindex( str, start=0,end=len(mystr))

partition

把mystr以str分割成三部分,str前,str和str后。

mystr.partition(str)

示例:

>>> mystr = 'hello world python2 and python3'
>>> mystr.partition('python')
('hello world ', 'python', '2 and python3')

rpartition

类似于partition()函数,不过是从右边开始。

mystr.rpartition(str)

splitlines

按照行分隔,返回一个包含各行作为元素的列表。

mystr.splitlines()  

示例:

>>> mystr = 'hello\nworld'
>>> print mystr
hello
world
>>> mystr.splitlines()
['hello', 'world']

isalpha

如果mystr所有字符都是字母则返回True,否则返回False。

mystr.isalpha() 

isdigit

如果mystr所有字符都是数字则返回True,否则返回False。

mystr.isdigit() 

isalnum

如果mystr所有字符都是字母或数字则返回True,否则返回False。

mystr.isalnum()

isspace

如果mystr中只包含空格,则返回True,否则返回False。

mystr.isspace()

join

str中每个字符后面插入mystr,构造出一个新的字符串。

mystr.join(str)

示例1:

>>> mystr = ' '
>>> str = 'abc'
>>> mystr.join(str)
'a b c'

示例2:

>>> mystr = ['xixi', 'haha']
>>> str = 'abc'
>>> str.join(mystr)
'xixiabchaha'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,577评论 18 399
  • 原来我想当女皇,我想被人疼。这并不矛盾。
    颖仔心随阅读 134评论 0 0
  • 写作本身没有意义,一个个字 就像一块块砖,本身没有意义,但是一块块砖经过精心的建筑,可以变成我们暖暖的家,可以变成...
    简书爱好阅读 523评论 0 51
  • 商业模式的第一个问题是价值主张。先说说什么叫价值。我们生活中一般不叫“价值”,而叫物的价值分两个方面,一个是生活中...
    采购与供应商管理学习阅读 11,355评论 1 4