格式化输出,运算符,编码,字符串(索引,切片,大小写转换等等)

格式化输出%s和format{} , 运算符 , 编码 , 字符串(索引,切片,大小写转换,拉长字符,去空格,替换,切割,格式化输出format , count数数 , find查找 , index求索引 , startswith判断字符串是否以xxx开头    ,    endswith 判断字符串是否以xxx结尾 ,         是否是字母和数字组成isalnum数字和字母 , isdigit数字 , isalpha字母)

格式化输出:

例题:(1)

name = input("输入你的名字:")
age = input("输入你的年龄:")
job = input("输入你的工作:")
hobby = input("输入你的爱好:")
print("""------------ info of 周杰伦 -----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------""" % (name, name, age, job, hobby))



format{}格式化输出
name=input('名字:')
age=input('年龄:')
hobby=input('爱好:')
s='我叫{name},今年{age}岁,喜欢{hobby}'.format(name=name,age=age,hobby=hobby)
print(s)
'''format格式化输出用的是字典进行占位,用法和%s一样,内容后面要加点然后再用format'''

 




例题:(2)
name = input("输入名字:")
age= input("输入年龄:")
print("我叫%s, 今年%d岁了" % (name, int(age)))

例题:(3)
print("我.今年%d岁了" % (18))

# %s 处理字符串. 全能的.
# %d 处理数字. 只能接收数字

# 我叫sylar, 我们学习python已经2%了
# 如果你的字符串中.用了%s或者%d这种形式. 那么后面的%, 认为是站位.如果需要用到% . 需要写%%
# print("我叫%s, 我们学习python已经2%%了" % ("sylar"))
# print("游戏加载已经80%%了") # 如果字符串中没有用到站位. 那么%还是你的%
# %f = 小数

 

 

运算符

and : 和, 并且. 左右两端必须同时为真(True) 结果才能是真
or : 或, 或者. 左右两端有一个是真,结果就是真

not : 取反 非. 非真既假, 非假既真.

运算顺序 () => not => and => or . 同样的运算符从左往右算

例题:

print(3 > 5 or 4 < 6)       Trun

 print(1 > 2 and 4 > 5 and 5 < 6 and 7 > 8)     False

print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)     False

 

or 如果第一位是非零. 输出第一位. 如果是零输出第二位
and 和or相反

例题:

print (3 and 5 and 0) 结果: 0

print(0 or 0 or 5 or 3)   结果:  5

print(1 or 2 and 3)结果: 1

print(3 and 4 or 8 and 5 or 6) 结果: 4

 

 

编码:

ASCII 不能装中文. 8个bit组成.最多有256种可能. 没有中文 1byte
GBK 有中文. 16个bit => 2byte
把ANSI 空余的位置交给各个国家. 交给中国之后. 中国继续编码.-GBK
交给台湾台湾继续编码. BIG5
依然不能国际化
UNICODE 万国码. 目的是把所有国家的文字都进行编码. 占32位. 缺点: 浪费
ASCII码的内容是不能改变的. 编码还应该是原来的编码. 但是unicode占用32个位置. ASCII会强制在前面补24个0. 在网络传输和数据存储上会浪费空间
32个bit => 4个byte

UTF-8: 可变长度的unicode编码, 8的意思是一个字符最少8位
英文: 8bit, 1byte
欧洲: 16bit, 2byte
中文: 24bit, 3byte

ASCII: 8bit 1byte
GBK: 16bit 2byte
unicode:32bit 4byte
UTF-8: 最少8bit, 1byte, 中文: 24bit 3byte

计算机存储系统单位换算
8bit => 1byte
1024byte => 1KB
1024kb = 1MB
1024MB = 1GB
1024GB = 1TB

 

 字符串

索引:

0 1 2 3 45 6 7 8
# s = "今天很萌.明天也萌"
# 字符串中的第几个字符
# 索引语法 字符串[索引] 索引从0开始
# print(s[3])
# print(s[5])
# print(s[0])
# print(s[-1]) # 倒数第一个
# print(s[-5]) # . 倒数第5个\
# 正向 从 0 开始
# 反向 从-1 开始

切片:
# 0 1 2 3 4 56 7 8 9 101112 13 14
# s = "我想吃切糕.切糕没有芝麻好吃!"
# print(s[2:5]) # 切片. 顾头不顾腚. 前面的能取到. 后面的取不到
# print(s[4:1]) # 给两个参数. 默认向右切
# print(s[5:8]) # .切糕
#print(s[:7]) # 从头开始切
# print(s[10:]) # 切到最后
# print(s[:]) # 全都切出来
# print(s[5:99]) # 如果右边的值. 超过了字符串长度. 切到最后
# print(s[-5:]) # 啥也不写. 到最后

# 可以跳着切 步长
s = "abcdef,ghijklmn"
# print(s[0:7:2]) # aceg 每2个切一个
# print(s[1:5:3]) # be
# print(s[-8:-2: 2]) # 倒数的也可以跳着切
# print(s[-1:-6:-1])# 反着取.

 

首字母大写:capitalize
s = "alex and wusir gaoji"
s1 = s.capitalize()
print (s1)
首字母大写:capitalize


每个单词首字母大写:title()
s = "alex and wusir gaoji"

s2 = s.title() # 标题, 每个单词首字母大写 , 特殊字符, 中文在这里算特殊字符
print(s2)



大小写转换:(大写:upper())(小写:lower())
name = "taiBai"
s1 = name.upper()
print(s1)
s2 = name.lower()
print(s2)


(大写转小写,小写转大写:seapcase())
s = "alexAndEggonAndRiTian"
s1 = s.swapcase()
print(s1)



验证码例题:
verify_code = "FaD3"
verify_code_user = input("请输入验证码:")
if verify_code.upper() == verify_code_user.upper():
print("验证码成功")
else:
print("验证失败")

拉长字符,由xxx进行填充:center(数字,"xxx填充")
s="hu"
s1 = s.center(15, "*")# 拉长成10个字符. 由*进行填充
print(s1)

去空格
去掉左右两边空格:strip()
s = "    麻花      藤. 张x忠, 刘华强     "
s1 = s.strip() # 去掉左右两边的空格, 必须要记住
print(s1)

单独去掉左边或右边

lstrip() # 去掉左边的空格
rstrip() # 去掉右边的空格

 

去空格例题:

username = input("用户名:").strip()
password = input("密码:").strip()
if username == 'alex' and password == '123':
print("登录成功")
else:
print("失败")

替换:replace
s = "alex,wusir,taibai,eggon"
s1 = s.replace("a", "喜欢")
print(s1)


切割:split
例:
s = "李嘉诚_王健林_马云_刘东强"
lst = s.split("_") # 字符串切割. 切割的结果是列表
print(lst[0])
print(lst[1])
print(lst[2])
print(lst[3])

#也可以切割字
例:
s = "我想吃切糕.切糕没有芝麻好吃!"
s1 = s.replace(".", "")
print(s1)



切几次
例:

s = "a_b_c_d_e_f_g"

 lst = s.split("_", 2) # 第二个参数. 切的次数
print(lst)

结果:['a', 'b', 'c_d_e_f_g']

#切割不能从头切到尾

 

 

格式化输出{}format

例:

print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100))

结果:旭哥很帅, 我们信吗?, 不信给你100钱


另一种格式化输出:

print("%s很帅, 你信吗?" % "我")

结果为:我很帅, 你信吗?

 

 

count 数数
s = "alex wusir taibai 女神"
print(s.count("ai"))         # 计算ai在原字符串中出现的次数 如果没出现返回0

 

find 查找
 s = "明天周末了.你们打算干什么去?"
 print(s.find("了")) # 如果你要查找的内容不存在. 返回-1, 如果存在返回索引,find是找到目标在第几位

 

index 求索引
s = "下周我们要考试了. 你们慌不慌"
print(s.index("慌"))           # 如果找不到报错.find找不到是返回-1,index找不到是报错

 

 

 

条件判断:(startswith判断字符串是否以xxx开头    ,    endswith 判断字符串是否以xxx结尾)

s = "写个啥呢? 哈哈哈"
print(s.startswith("写个啥呢"))
结果:True

 

#  判断字符串是否以xxx开头

 

print(s.endswith("哈哈哈"))
结果:True
# 判断字符串是否以xxx结尾



是否是字母和数字组成(isalnum数字和字母 , isdigit数字 , isalpha字母)

s = "abcdefg"
print(s.isalnum()) #数字和字母
print(s.isdigit())  # 数字
print(s.isalpha())  # 字母



s = "壹贰"
# print(s.isnumeric()) # 几乎所有数字
# print(s.isdigit()) # 阿拉伯数字

 

求字符串的长度

s = "abcde"
ret = len(s) # 内置函数
print(ret) 结果:5





练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位
s = "I am sylar, I'm 14 years old, I have 2 dogs!"
count = 0
for w in s:
if w.isdigit():
count = count + 1
print(count)

 

 




 




posted @ 2018-06-02 20:33  惊世风情  阅读(358)  评论(0编辑  收藏  举报