python流程控制
if条件分支语句
python条件语句就是通过一条或者多条语句执行的结果(True/False)来决定执行的代码块。
- if单分支语句
if逻辑语句:
语句(块)
demo:
print("向Python致敬,我正在学习。")
if False:
print("66666")
print("1111.")
learning = "python"
if learning == "python":
print("巧哦")
print("Nice to meet you.")
if分支语句
if逻辑语句1:
语句模块1
else:
语句模块2
if 多分支语句
C语言中
if
if
if
else
else
else
python:
if 逻辑语句1:
语句(块)1
elif 逻辑语句2:
语句(块)2
elif 逻辑语句 n-1:
语句(块)n-1
else:
语句(快)n
根据百分制考试成绩返回五级分制成绩。
90-100:A
80-90:B
70-80:C
60-70: D
0-60:E
score = int (input("请输入分数:"))
if score > 100:
print("学霸靠一百,是因为满分只有一百。")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("E")
从控制台输入一个三位数,判断其是否为水仙花数。
153 = $ 1^3$ +$ 5^3 $+ 3 3 3^3 33
num = int( input("dd一个数字:"))
x = num %10
y = num//100
z = num//10%10
if num == (pow(x,3)+pow(y,3)+pow(z,3)):
print("你真是个水仙花")
else:
print("no")
while 语句
-
循环语句
-所谓循环,就是用来执行部分代码在一定条件下重复执行代码。
格式:
while 逻辑语句:
语句(块)
(1)利用while来打印1-200的数字:
i = 1
while i<=200 :
print(i)
i += 1
(2)利用while来求1-100的和。
i = 1
sum =0
while i <= 100:
sum = i+sum
i = i + 1
print(sum)
(3)利用while求1-100内所有的偶数和。
i = 1
sum =0
while i <= 100:
if i%2 == 0:
sum = i+sum
i = i + 1
print(sum)
(4)求100-999内所有的水仙花数。
num = 100
while num <= 999:
x = num %10
y = num//100
z = num//10%10
if num == (pow(x,3)+pow(y,3)+pow(z,3)):
print(num)
num = num + 1
for 循环
Python中for,可以用来遍历任何序列(字符串,列表,元祖,etc.)
格式
for i in 序列:
语句(块)
1.range()
range(end)# [0,end-1],end为整数
range(start,end)#[start,end-1],两个数为整数
range(start,end,step)#[start,start+step,start+2*step,....start+(end-start)//step*step]
for i in range(1,101,2):
print(i,end=" ")
结果:1,3,5,7….95 97 99
break和continue
-
break用来结束一个循环,跳出循环体。
-
continue终止本次循环的动作,直接进入下一次循环。
while…else
whlie…else
count = int(input("Enter a INT:"))
while count<= 5:
print(count,end=" ")
count +=1
if count ==3:
break
else
print("这里是else语句。")
for…else…
while…else,for…else中while和else是一块的,for和else也是一块的。
当有break或者return的时候就会跳出while。如果没有break或者return,不管while是否执行,都会执行else语句
字符串
1.什么是字符串
-
用引号引起来的一串字符
-
用引号来创建字符串
-单引号
-双引号
-三单引号
-三双引号
#创建字符串
name = “Hangzhou”
area = ‘Gongshu’
history = “5000”
famous_person = “”“苏轼,许仙,白素贞”""
Captical0f=’’‘吴越,南宋’’’
print(type(name),type(area),type(history),type(famous_person),type(Captical0f))
==结果:<class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'>==
说明以上数据都是字符串
单引号和双引号使用时需注意匹配关系,且不可以换行
如果需要换行,三单引号或者三双引号
pm = ‘’‘轻轻地我走了,
正如我轻轻地来。’’’
print(pm)
字符串的运算及常见操作
### **(1)拼接**
==a= “Hello”==
==b= “,Python.”==
==print(a + b)==
==a = [“Hello”]==
==b=[“,Python.”]==
==print(a+b)==
<u>拼接基于同一种数据类型</u>
### **(2)重复**
a = “City College”
print(a*3)
### **(3)索引(偏移)[] 切片[:] [::]**
==len()方法语法:==
==len( str )==
==返回值:返回字符串长度。==
sr = “Python”
print(len(sr))
print(sr[5])
切片
##0123456789012345678901234567890
sr = “Life is short,you need python.”
print(len(sr))
print(sr[1:4:2])
#1代表起始值,4代表终止值(但取不到),2代表步长
### **(4) 大小写互换**
sr .lower() :转小写
sr .upper() :转大写
sr .swapcase() :大小互换
sr .title() :转为标题形式
sr .capitalize() :首字母大写
```python
sr = "life is short,you NEED python."
print(sr.lower())
print(sr.upper())
pring(sr.swapcase())
pring(sr .title())
pring(sr .capitalize())
验证码确认
certid = "AbCd"
ipt = input("请输入验证码:")
if ipt.lower() == certid.lower():
print("输入成功")
else:print(“弟弟”)
#输入ABCD则也显示成功,无关大小写。
(5)字符串的格式输出对齐
-sr.center([len],[填充符号])
-sr.ljust([len],[填充符号]),居左对齐
-sr.zfill([len]),居右对齐,默认填充0
sr = “Life is short, you need python.”
print(sr.ljust(41,‘#’))
print(sr.rjust(41,'#'))
(6)删除指定字符
–sr.strip()
–sr.lstrip()
–sr.rstrip()
sr = “#####Life is short, you need python.#####”
print(sr.strip("#"))
若不在同一行,则无法删除
sr = “\n#####Life is short, you need python.#####\n”
(7)计数
– sr.count()
##0123456789012345678901234567890
sr = "Life is short, you need python."
print(sr.count('o',9,17))
#输出结果 2
(8)字符串搜索定位和替换
–sr.find(),查找元素并反返回第一次出现的元素的索引值;查找不到,返回-1
–sr.index(),查找元素并反返回第一次出现的元素的索引值;查找不到,报错
–sr.rindex(),从右往左
–sr.replace([现有],[替新])
##0123456789012345678901234567890
sr = "Life is short, you need python."
print(sr.find('z',19,25))
print(sr.index('e',19,25))
print(sr.rindex('e'))
print(sr.replace('t','T','1'))
(9)字符串条件判断
–isalnum(),判断字符串有字母或者数字组成
–isalpha(),仅有字母
–isdigit(), 仅有数字
#判断是否全为数字
>>> a ="123"
>>> a.isdigit()
True
>>> b ="a123"
>>> b.isdigit()
False
#判断是否全为字母
>>> d ="alx--e"
>>> d.isalpha()
False
>>> c ="alex"
>>> c.isalpha()
True
#判断是否全为数字或者字母
>>> e ="abc123"
>>> e.isalnum()
True
(10)制表符的转化
—sr.expandtabs()
nm = "012345678901234567890123456789"
sr = "Life is short,you nee\td python."
print(nm)
print(sr.expandtabs(4))
(11)字符串的分割变换
– join(),将指定字符插入到元素之间
–split(),以指定字符分割字符串并去除该字符
–partition(),以指定字符分割字符串并保留该字符
#sr = "Life is short,you need python."
#print('+'.join(sr))
li = ["I ","Love ","Python."]
print(''.join(li))
print(sr.split('o',2))
print(sr.partition('0'))
(12)ASCII值何字符转化
—chr()dight ---->alpha
—ord()alpha ---->dight
for i in range(ord('a'),ord('z')+1):
print(chr(i),end=" ")
拓展
string模块
import string
print(dir(string))
结果:
[‘Formatter’, ‘Template’, ‘_ChainMap’, ‘_TemplateMetaclass’, ‘all’, ‘builtins’, ‘cached’, ‘doc’, ‘file’, ‘loader’, ‘name’, ‘package’, ‘spec’, ‘_re’, ‘_string’, ‘ascii_letters’, ‘ascii_lowercase’, ‘ascii_uppercase’, ‘capwords’, ‘digits’, ‘hexdigits’, ‘octdigits’, ‘printable’, ‘punctuation’, ‘whitespace’]
import string
print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
(13) 格式化输出
输出八进制数和十六进制数
for i in range(8):
print(oct(i),end=" ")
print()
for i in range(16):
print(hex(i),end=" ")
#输出结果:
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
print()
print('%o'%17) #八进制
print('%x'%17) #十六进制
ters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
### (13) 格式化输出
**输出八进制数和十六进制数**
for i in range(8):
print(oct(i),end=" “)
print()
for i in range(16):
print(hex(i),end=” ")
#输出结果:
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
print()
print(’%o’%17) #八进制
print(’%x’%17) #十六进制