hello,这里是Token_w的文章,主要讲解python的基础学习,希望对大家有所帮助
整理不易,感觉还不错的可以点赞收藏评论支持,感谢!
有没有一个人,你想给TA传个小纸条?用恺撒密码一展身手吧。
上例中,1.01e3值为1010.0;-1.01E-3值为0.00101。
Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”。
print(1234567890.987654321 * 1234567890.987654321)
# 1.5241578774577044e+18
print(9876543210.123456789 / 1234567890.987654321)
# 8.000000066600002
复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位”。含有虚数单位的数被称为复数。例如:
11.3+4j -5.6+7j 1.23e-4+5.67e+89j
Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“J”或者“j”来表示。需要注意,当b为1时,1不能省略,即 1j表示复数,而j则表示Python程序中的一个变量。
复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分
print((1.23e4+5.67e4j).real)
# 12300.0
print((1.23e4+5.67e4j).imag)
# 56700.0
print(1.23e4+5.67e4j.imag # 先获得5.67e4j的虚部,再与1.23e4进行求和计算)
# 69000.0
x op= y 等价于 x = x op y
x = 99
x **= 3 # 与x = x**3等价
print(x)
# 970299
数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:
print(1010 / 10 ) # / 运算的结果是浮点数
# 101.0
print(1010.0 // 3 ) # 浮点数与整数运算,产生结果是浮点数
# 336.0
print(1010.0 % 3 ) # 浮点数与整数运算,产生结果是浮点数
# 2.0
print(10 - 1 + 1j )
# (9+1j)
print('这是"单行字符串"')
# 这是"单行字符串"
print("这是'单行字符串'")
# 这是'单行字符串'
print("""这是'多行字符串'的第一行
这是'多行字符串'的第二行
""")
'''
这是'多行字符串'的第一行
这是'多行字符串'的第二行
'''
print("既需要'单引号'又需要\"双引号\"")
# 既需要'单引号'又需要"双引号"
字符串是一个字符序列:字符串最左端位置标记为0,依次增加。对字符串中某个字符的检索被称为索引。索引的使用方式如下:
<字符串或字符串变量>[序号]
如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。
字符串以Unicode编码存储,字符串的英文字符和中文字符都算作1个字符。
print("青青子衿,悠悠我心。"[-5])
# '悠'
print(s = "青青子衿,悠悠我心。")
print(s[5])
# '悠'
print("青青子衿,悠悠我心。"[8:4])
# ''
print("青青子衿,悠悠我心。"[:4])
# '青青子衿'
print("青青子衿,悠悠我心。"[5:])
# '悠悠我心。'
print(print("青青子衿,悠悠我心。"[5:]))
# 悠悠我心。
其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。
print("{}曰:学而时习之,不亦说乎。".format("孔子"))
# '孔子曰:学而时习之,不亦说乎。'
print("{}曰:学而时习之,不亦{}。".format("孔子","说乎"))
# '孔子曰:学而时习之,不亦说乎。'
print("{1}曰:学而时习之,不亦{0}。".format("说乎","孔子"))
# '孔子曰:学而时习之,不亦说乎。'
print("{1}曰:{{学而时习之,不亦{0}}}。".format("说乎","孔子"))
# '孔子曰:{学而时习之,不亦说乎}。'
format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息。
{<参数序号>: <格式控制标记>}
其中,格式控制标记用来控制参数显示时的格式 。格式控制标记包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合使用
<填充>、<对齐>和<宽度>主要用于对显示格式的规范。
宽度指当前槽的设定输出字符宽度,如果该槽参数实际值比宽度设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则按照对齐指定方式在宽度内对齐,默认以空格字符补充。
对齐字段分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。
填充字段可以修改默认填充字符,填充字符只能有一个。
s = "等级考试"
print("{:25}".format(s)) #左对齐,默认
# '等级考试 '
print("{:^25}".format(s)) #居中对齐
# ' 等级考试 '
print("{:>25}".format(s)) #右对齐
# ' 等级考试'
print("{:*^25}".format(s)) #居中对齐且填充*号
# '**********等级考试***********'
print("{:+^25}".format(s)) #居中对齐且填充+号
# '++++++++++等级考试+++++++++++'
print("{:十^25}".format(s)) #居中对齐且填充汉字“十”
# '十十十十十十十十十十等级考试十十十十十十十十十十十'
print("{:^1}".format(s)) #z指定宽度为1,不足变量s的宽度
# '等级考试'
print("{:.2f}".format(12345.67890))
# '12345.68'
print("{:>25.3f}".format(12345.67890))
# ' 12345.679'
print("{:.5}".format("全国计算机等级考试"))
# '全国计算机'
• c: 输出整数对应的Unicode字符;
• d: 输出整数的十进制方式;
• o: 输出整数的八进制方式;
• x: 输出整数的小写十六进制方式;
• X: 输出整数的大写十六进制方式;
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
# '110101001,Ʃ,425,651,1a9,1A9'
• E: 输出浮点数对应的大写字母E的指数形式;
• f: 输出浮点数的标准浮点形式;
• %: 输出浮点数的百分形式。
print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
# '3.140000e+00,3.140000E+00,3.140000,314.000000%'
print("{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)) # 对比输出
# '3.14e+00,3.14E+00,3.14,314.00%'
print("{:.2f}".format(3.1415926)) # 输出小数点后两位
# '3.14'
print("{:x}".format(1010)) # 输出整数的十六机制形式
# '3f2'
print("{:.5}".format("这是一个很长的字符串")) # 输出字符串的前5位
# '这是一个很'
print("{:-^10}".format("PYTHON")) # 居中并填充
# '--PYTHON--'
name = "Python语言" + "程序设计"
print(name)
# 'Python语言程序设计'
print("等级考试!" * 3)
# '等级考试!等级考试!等级考试!'
print("语言" in name)
# True
print('Y' in name)
# False
print(len("全国计算机等级考试Python语言科目"))
# 19
print(chr(10000))
# '✐‘
print(hex(1010))
# '0x3f2'
print("Python is an excellent language.".split())
# ['Python', 'is', 'an', 'excellent', 'language.']
print("Python is an excellent language.".split('a'))
# ['Python is ', 'n excellent l', 'ngu', 'ge.']
print("Python is an excellent language.".split('an'))
# ['Python is ', ' excellent l', 'guage.']
print("Python is an excellent language.".count('a'))
# 3
print("Python is an excellent language.".replace('a', '#'))
# 'Python is #n excellent l#ngu#ge.'
print("Python is an excellent language.".replace('Python', 'C'))
# 'C is an excellent language.'
print("Python".center(20, "="))
# '=======Python======='
print("Python".center(2, "="))
# 'Python'
print(" ==Python== ".strip(' '))
# '==Python=='
print(" ==Python== ".strip(' ='))
# 'Python'
print(" ==Python== ".strip(' =n'))
# 'Pytho'
print(" ".join('PYTHON'))
# 'P Y T H O N'
print(",".join('12345'))
# '1,2,3,4,5'
print(",".join(['1', '2', '3', '4', '5']))
# '1,2,3,4,5'
n = eval(input('请输入一个数字:'))
if type(n) == type(123):
print("输入的数字是整数。")
elif type(n) == type(11.3):
print("输入的数字是浮点数。")
else:
print("无法判断输入类型。")
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
原文字符P,其密文字符C满足如下条件:
C = ( P + 3 ) mod 26
解密方法反之,满足:
P = ( C – 3 ) mod 26
# CaesarEncode.py
ptxt = input("请输入明文文本: ")
for p in ptxt:
if "a" <= p <= "z":
print(chr(ord("a")+(ord(p)-ord("a")+3)%26), end='')
elif "A" <= p <= "Z":
print(chr(ord("A")+(ord(p)-ord("A")+3)%26), end='')
else:
print(p, end='')
>>>
请输入明文文本: This is an excellent Python book.
Wklv lv dq hafhoohqw Sbwkrq errn.
# CaesarDecode.py
etxt = input("请输入加密后文本: ")
for p in etxt:
if "a" <= p <= "z":
print(chr(ord("a")+(ord(p)-ord("a")-3)%26), end='')
elif "A" <= p <= "Z":
print(chr(ord("A")+(ord(p)-ord("A")-3)%26), end='')
else:
print(p, end='')
>>>
请输入加密后文本: Wklv lv dq hafhoohqw Sbwkrq errn.
This is an excellent Python book.
具体讲解了计算机中常用的数字类型及操作,包括Python数值运算操作符和数值运算函数。进一步讲解了字符串类型及格式化、字符串操作符、字符串处理函数和字符串处理方法等。最后,还介绍了类型判断和类型转换的基本方法,通过对恺撒密码及其变种若干实例的讲解帮助读者加深对数据类型操作的理解。