for n in range(10, 20):
for x in range(2, n):
if n % x == 0:
print(n, '等于', x, '*', n//x)
break
else:
# 循环中没有找到元素
print(n, ' 是质数')
number = int(input("请输入整数:"))
print("*" * number)
for __ in range(number - 2):
print("*" + " " * (number - 2) + "*")
print("*" * number)
编程始于生活,其实下标在我们日常生活中随处可见,快递柜的编号、高铁的座位号码等等
如:name = “Barbara“
name | B | a | r | b | a | r | a |
---|---|---|---|---|---|---|---|
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
name = 'Barbara'
# 输出单个
print(name[0]) #B
print(name[1]) #a
print(name[2]) #r
print(name[3]) #b
# 输出所有
print(name)
切片的语法:[起始:结束:步长]
注意:
1、选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
2、步长是切片每次获取完当前元素后移动的偏移量
如果取出一部分,则可以在中括号[]中,使用:
如:name = “Barbara“
name | B | a | r | b | a | r | a |
---|---|---|---|---|---|---|---|
正向下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
逆向下标 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
name = 'Barbara'
print(name[0:3]) #Bar 取下标为0~2的字符
print(name[0:6]) #Barbar 取下标为0-5的字符
print(name[3:6]) #bar 取下标为3~5的字符
print(name[3:]) #bara 取3到最后的字符
print(name[1:-1]) #arbar 取下标为1开始 到 最后第2个 之间的字符
print(name[:]) #Barbara 获取全部
print(name[:3]) #Bar 取下标为0-2的字符
print(name[::2]) #Braa 从头到尾隔2位输出
print(name[::-1]) #arabraB 倒序输出(可用于反转字符串)
print(name[-2:-4:-1]) #ra 取倒数第2位到倒数第3位倒数的值
print(name[3:1:-1]) #br 取第3位到第2位倒数的值
Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束)
范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
str.find(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
如果包含子字符串返回开始的索引值,否则返回-1。
str1 = "this is string example....wow!!!"
#str1 = "01234567890123456789012345678901"
str2 = "exam"
print(str1.find(str2)) #15 目标字符串从15开始
print(str1.find(str2,0,10)) #-1
# 检测 str2 是否包含在 str1中,如果是返回开始的索引值,否则返回-1
Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
str.index(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
如果包含子字符串返回开始的索引值,否则抛出异常。
str1 = "this is string example....wow!!!"
str2 = "exam"
print(str1.index(str2)) #从首位开始查找
print(str1.index(str2, 10)) #从下标10开始查找
print(str1.index(str2, 40)) #超出范围无法找到 ValueError: substring not found
Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
str.count(sub, start= 0,end=len(string))
sub – 搜索的子字符串
start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
该方法返回子字符串在字符串中出现的次数
str = "this is string example....wow!!!"
sub = "i"
print("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))
sub = "wow"
print("str.count(sub) : ", str.count(sub))
输出显示
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。默认为 -1, 即分隔所有。
返回分割后的字符串列表。
str = "this is string example....wow!!!"
print(str.split()) # 以空格为分隔符,包含 \n
print(str.split(' ', 1)) # 以空格为分隔符,分隔成两个
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str.join(sequence)
sequence – 要连接的元素序列。
str = "-"
seq = ("a", "b", "c") # 字符串序列
print(str.join(seq)) # a-b-c
注意:含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。
为了让大家便于理解,以下为ASCII编码表
注意:含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。
下面进行编码转换
s01 = "b"
# 字 --> 数
num01 = ord(s01)
print(num01) # 98 在上图ASCII表中对照
num02 = 97
# 数 --> 字
s02 = chr(num02)
print(s02) # a
# 双引号
str01= "人生苦短,我用python"
# 单引号
str02 = '人生苦短,我用python'
# 三引号:可见即所得
str03 = '''人生苦短,我用python'''
name04 = """
人
生
苦
短
"""
# 单引号内的双引号不算结束符
message = '人生苦短".'
输出显示
# 转义字符方法一:
print('I\'m ok.')
print('I\'m learning\nPython.')
print("\' \" \""" \\n \\\ \\t \\0")
# 转义字符方法二:
print(r"I'm ok.")
print(r"I\'m learing\nPython.")
print(r" ' \" \""" \\n \\\ \\t \\0")
path = r”C:\Program Files\test.py”
#转义方法一:
print("C:\\Program Files\\test.py")
#转义方法二:
print(r"C:\Program Files\test.py")
%s 字符串 %d整数 %f 浮点数
name = "小明" # 字符串类型 %s 取值
pay = 100 # 整数类型 %d 取值
back = 3.14159 # 浮点型 %f 取值
print("保留小数点后两位:%.2f"%(back)) # 保留小数点后两位:3.14
# 格式化方法一: # 小明付款100元找回3.141590
print("%s付款%d元找回%f"%(name,pay,back))
# 格式化方法二: # 小明付款100元找回3.141590
print("%s付款%d元找回%f"%('小明',100,3.14159))
# 格式化方法三: # 小明付款100元找回3.14159
print(str(name)+"付款"+str(pay)+"元找回"+str(back))