day06

回顾

1.变量
"""
变量名 = 值
变量名 - 标识符,不能是关键字
见名知意,所有字母小写多个单词之间用_隔开,不能使用系统内置函数名
"""

 print = 100
a = b = c = 100
a1, b1, c1 = 100, 200, 300
a2 = 10; b2 = 11

2.运算符
数学运算符、比较运算符、逻辑运算符、赋值运算符
**
10 <= a <= 20
逻辑运算符的对象和结果都是布尔值
赋值运算符,左边必须是变量,复合的赋值运算右边不能有其他赋值运算符

** 3.分支结构**
if, if-else, if-elif-else

** 4.循环结构**
for:

for 变量 in 序列:
循环体
else:
语句块

while:

while 条件语句:
循环体
else:
语句块

continue, break

字符串

string1

1.什么是字符串(str)
"""
字符串是python内置的一种容器型数据类型,不可变、有序;将单引号或者双引号作为容器,里面可以根据情况方多个字符。
不可变:指的是内容的值和顺序不可变
有序:一旦字符串确定,字符串中字符的为止就固定(每个字符是第几个字符是确定的)

"""
2.字符串中的内容 - 字符
'''
Python中只有字符的概念,没有字符对应的数据类型
字符串的基本单元就是字符,又叫字符串的元素
a.基本字符 - 数字、字母、常用符号、中文等

b.转义字符 - 通过转义符号\后面跟不同的符号来表示特殊功能或特殊意义的字符
\n - 换行 ' - 一个单引号 " - 一个双引号 \ - 一个反斜杠 \t - 制表符
str1 = 'abc\n123'
print(str1)
阻止转义:在字符串的最前面加r/R,可以阻止字符串中的转义字符转义(一般用于正则表达式)
str1 = r'abc\n123'
'''
c.编码字符 - \u 后面跟4位的十六进制数,来表示一个字符。这4位的16进制数对应的值是字符的编码值

str1 = '\ta\'bc\n1\"23\\n'
print(str1)
str1 = r'abc\n123'
print(str1)

3.字符编码
'''
python中的字符采用的是Unicode编码
计算机存储数据的时候只能存数字,而且存的是数字的补码(是以二进制的格式进行存储)
编码:每个字符在计算机中存储的时候都会对应一个固定且唯一的数字,这个数字就是这个字符的编码,
没一个字符和数字的一一对应关系就是编码表,常见的编码表有:ASCII码表和Unicode编码表。
ASCII:码表只对数字字符、英文字母字符、英文符号进行编码
Unicode:编码表是对ASCII码表的扩充,能够对世界上所有的符号进行编码:4e00-9fa5(汉字范围)

100 # 十进制数
print(bin(100))  #bin(数字)  -  获取指定数字对应的二进制
print('二进制:',0b1100100)
print(oct(100),0o144) # oct(数字)  -  获取指定数字对应的八进制
print(hex(100),0x64)  # hex(数字)  -  获取指定数字对应的十六进制
print(0b1100100 * 10)
# chr(编码值) — 获取编码值对应的字符
# ord(字符)  —  获取字符对应对的编码值,注意:字符值就是长度是1的字符串
print(chr(0x2c80))
print(ord('程'),ord('渝'),ord('文'))
print(chr(31243),chr(28189),chr(25991))
'''
num = 0
for code in range(0x4e00,0x9fa5):
    print(chr(code),end=' ')
    num += 1
    if num % 20 == 0:
        print()
print(num)
'''
str3 = '\u4fff\u5faa'
print(str3)
print('a' > 'Z')

string2

1.获取字符 - 取字符串的内容
1.1.获取单个字符:
'''
a.语法:字符串[下标]
b.说明:字符串 - 可以是字符串,也可以是字符串变量,结果是字符串的表达式等都可以
[] - 固定写法
下标 - 又叫索引,一旦字符串确定,那么字符串中的每个字符都会对应一个下标,
表示这个字符在字符串中的位置。下标的范围是0开始到字符串长度减一,
0表示第一个字符,1表示第二个,以此类推。(通用的)
下标范围还可以是-1 到 字符串长度减一,-1表示倒数第一个
c.注意:获取单个字符的时候下表不能越界
'''

str1 = 'python'  #'p': 0/-6   'y': 1/-5
result = 'python'[3]
print(result)
print(str1[0],str1[-6],str1[-1],str1[-2])
#print(str1[100])   # IndexError: string index out of range(下标越界)

1.2 获取部分字符(字符串切片)
'''
a.语法:字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到结束下标前为止,每次下标值增加步长
b.说明:字符串 - 可以是字符串,也可以是字符串变量,结果是字符串的表达式等都可以
[],: - 固定写法
开始下标、结束下标 - 下标值,开始下标可以取到,结束下标对应的字符一定取不到
步长 - 整数,正负都可以
c.注意:下标可以越界
如果步长为正(从前往后获取),开始下标对应的字符要在结束下标对应的字符前才能获取到值
如果步长为负(从后往前获取),开始下标对应的字符要在结束下标对应的字符后面才获取到值

'''

str2 = 'abcdef123456'
print(str2[0:4:1])  #abcd
print(str2[0:4:-1])  #结果为空
print(str2[-2:-3:-1])  #5
print(str2[-2:-10:-2])  #531e
print(str2[0:100:1])  #abcdef123456 可以越界
print('hello python'[1:-2:3])  #eoy

'''
切片的语法中可以对步长、开始下标和结束下标进行省略:
1.省略步长(步长默认为1)
字符串[开始下标:结束下标] == 字符串[开始下标:结束下标:1]

2.省略开始下标
字符串[:结束下标:步长] - 如果步长是正,从字符串开头往后取;如果步长为负,从字符串往前取
字符串[开始下标::步长] - 如果步长是正,取到最后一个字符为止;如果步长为负,取到第一个字符为止
'''

print(str2[2:5])  #cde
print(str2[-4:-1])  #345
print(str2[:3:1])  #abc
print(str2[:3:-1])  #654321fe
print(str2[2::1])  #cdef123456
print(str2[2::-1])  #cba
print(str2[:])  #abcdef123456 复制
print(str2[::-1])  #654321fedcba 倒叙
num = 1234
num = int(str(num)[::-1])
print(num * 10)

1.3 遍历字符串 - 一个一个的取出所有的字符
'''
方法一:直接遍历
for 变量 in 字符串:
循环体

方法二:通过遍历下标,来遍历字符串
for 变量 in range(字符串长度):
字符串[变量]

'''

for char in 'holle':
    print(char)


str3 = 'when i was young'
# len(字符串) - 获取字符串长度,返回一个数字。字符串长度指的是字符串中字符的个数
for index in range(len(str3)):
    print(index,str3[index])

index = 0
while index < len(str3):
    print(index,str3[index])
    index += 1

string3

1.字符串相关运算
a.数学运算:字符串支持加法运算和乘法运算
语法:字符串1 + 字符串2 - 将两个字符串拼接在一起产生一个新的字符串

new_str = 'abc' + '123'
print(new_str)  #abc123

new_str += '你好!'
print(new_str)  #abc123你好!
# new_str = 'abc' + 123  #TypeError: must be str, not int

注意:加号两边,必须都是数字,或者都是字符串,数字和字符串不能混合相加!

语法:字符串 * 正整数 / 正整数 * 字符串 - 指定的字符串重复指定的次数,产生一个新的字符串

print('abc' * 2)  #abcab
print('*' * 10)  #**********

b.比较运算:字符串支持所有的比较运算符
字符串1 == 字符串2, 字符串1 != 字符串2 - 判断两个字符串是否相等

print('abc' == 'abc')
print('abc' == 'acb')
print('abc' != 'acb')

字符串比较大小:让两个字符串中相同位置的字符一一比较(从前往后),找到第一对不相等的字符,判断编码值的大小

print('abcdef' > 'abz')  #False
print('abc' > 'abc')  #False
print('abc1' > 'abc')  #True

char = 'Z'

应用
判断一个字符是否是字母: 'a' <= char <= 'z' or 'A' <= char <= 'Z'
判断一个字符是否是数字:'0' <= char <= '9'
判断一个字符是否是中文(4e00 - 9fa5):'\ua4e00' <= char <= '\u9fa5' / 0x4e00 <= ord(char) <=0x9fa5

print('\ua4e00' <= char <= '\u9fa5')
print(chr(0x4e00),chr(0x9fa5))

练习:输入一个任意的字符串,统计输入的内容中字母的个数
例如:输入'abc123你好世界end~~~~'

num = 'abc123你好世界end'
a = 0
for n in num:

    if 'a' <= n <= 'z':
        a += 1

print('字母的个数:',a)

3.in 和 not in 操作
字符串1 in 字符串2 - 判断字符串1是否在字符串2中(判断字符串2中是否包含字符串1)
字符串1 not in 字符串2 - 判断字符串1是否不在字符串2中(判断字符串2中是否不包含字符串1)

print('abc' in '123abc===')  #True
print('abc' in 'a123bc===')  #False
print('abc' not in 'a123bc===')  #True

4.常用内置函数
len(字符串) - 求字符串长度
str(数据) - 将其他数据转换为字符,所有的数据都能转换成字符串,转换的时候直接在数据的外面加引号

print(int('-23'))  #只有去掉引号后,本身就是一个整数的字符串才能转换成整型
print(float('-123.2'))  #只有去掉引号后,本身就是一个数字的字符串才能转换成浮点型
print(bool(''))  #除了空串会转换成False,其他都会装换为True

string4

1.字符串的对象方法
字符串.方法()

str4 = 'hello'
new_str = str4.capitalize()  #第一个字母大写
print(new_str)

字符串.center(width, fillchar) - 产生一个长度为width的新的字符串,新字符串中原字符串居中,剩余的部分用fillchar填充

new_str = str4.center(11,'!')
print(new_str)

#左居中.ljust(width, fillchar)
new_str = str4.ljust(11,'!')
print(new_str)
#右居中.rjust(width, fillchar)
num = 1
# num = 10
study_id = str(num).rjust(3,'0')
print(study_id)

字符串.zfill(width) - 产生一个宽度是width的字符串,原字符串在右边,前面用0填充

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

推荐阅读更多精彩内容

  • 字符串 1.什么是字符串 解释: 字符串是python内置的一种容器型数据类型,将引号作为容器,里面根据情况可以放...
    BrayKing阅读 263评论 0 0
  • 变量的作用域1.全局变量: a.声明在函数外部的变量(从声明开始到文件结束都可以使用)b.直接声明在函数内的变量(...
    萌王史莱姆阅读 368评论 0 1
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,816评论 2 16
  • 一年之计在于春 树叶清芽萌动 燕子正备北归 你准备好了吗
    a9a4df090fda阅读 227评论 0 6
  • 此间花木正佳期,客欲前来复几时? 杨柳垂丝夹幽径,芙蓉弄影出清池。 儿童嬉戏由天性,蝴蝶翩跹任舞姿。 行向小桥空自...
    雪窗_武立之阅读 293评论 0 5