Python学习之路(一) ——浅谈新手小白对print()函数的理解
笔者目前为在校大四学生(某末流211),大学生活即将画上终点,然而却还没有真正精通一门语言,很是惭愧。在大学期间参加了各种文体活动,获得了很多次演讲比赛的奖项,也参加了很多学科竞赛,获得过几次不大不小的奖项,还花费了大量时间在学生工作上面(最后担任了学生会主席)。这些简历在不明所以的人,或是刚进入大学的学弟学妹看来应该是还算不错的,笔者自己之前也为此而沾沾自喜。然而直到在今年9月份的保研面试中(笔者比较幸运目前保研到某中流985)被许多面试学校的老师无情鞭挞,才深切的认识到了自己的不足。并且也深深的明白了,简历的花哨只是拿给别人看的,究竟几斤几两只有自己是最清楚的。有没有能力,骗得了别人却骗不了自己。所以决定学习Python(之前有过了解,但并未系统学习),并且将自己的一些学习心得记录在博客中,因为本人初学(虽然已经大四,唉,太惭愧了)难免有些地方会出错,烦请各位大佬多多指点,错误之处笔者一定加以改正,望指教!如果也有和我一样正在学习python的小伙伴,那么也欢迎我们一起相互交流学习。另外本文所有引用的内容均会标注出处,如有遗漏请各位小伙伴加以提醒,我一定补充改正。
有过编程基础的小伙伴应该都知道print()函数的作用就是输出,0基础的小伙伴也不用愁,至少我们英文还是认识的对吧(print英文就是打印嘛)
就是打印并输出内容
print(值1,值2,...值n,sep=' ', end='\n')
sep作用:设置输出间的分隔符号
end作用:用于设置输出结束时的符号,默认为换行符,当然我们也可以换成其他字符
下面举几个简单例子:
print("hello,world")
#输出内容为 hello,world
其他数据类型的输出这里我ctrl+c和ctrl+v了其他博主的代码(因为马上就要到和新生抢饭的时间了,所以我逼不得已搬运了一把)供大家参考(当然所有引用都在最后有说明,绝对不是恶意抄袭)
num = 19
print(num) # 19 输出数值型变量
str = 'Duan Yixuan'
print(str) # Duan Yixuan 输出字符串变量
list = [1, 2, 'a']
print(list) # [1, 2, 'a'] 输出列表变量
tuple = (1, 2, 'a')
print(tuple) # (1, 2, 'a') 输出元组变量
dict = {'a': 1, 'b': 2}
print(dict) # {'a': 1, 'b': 2} 输出字典变量
name="Mr.Q"
age=21
height=178.5
weight=65
print(name,age,height,weight,sep="!")
print(name,age,height,weight)
#输出内容为
#Mr.Q!21!178.5!65
#Mr.Q 21 178.5 65
在第一个输出中使用sep设置了输出变量之间的分隔符,第二个输出中没有设置,所以默认输出变量间为空格
name="Mr.Q"
age=21
height=178.5
weight=65
print(name)
print(age,end="+")
print(height,end="\n")
print(weight)
'''
输出结果为
Mr.Q
21+178.5
65
'''
通过本例我们可以明显看到end在输出中的作用
`
注:python中print()函数输出默认是换行的。
在python中所有变量都可以通过print()函数进行输出,例如:整型、浮点型、字符串型、列表、元组、字典等等。笔者目前了解到的有两种输出方式:“+”号拼接和“,”逗号隔开变量(自己命名的,如有错误欢迎指出)的方式(格式化输出会在后面单独讲)
name="Mr.Q"
age=21
height=178.5
weight=65
print(name,str(age),str(height),str(weight),weight)
#输出内容
#Mr.Q 21 178.5 65 65
代码中str()的作用是将数据类型转换为字符串类型,因为使用“+”号拼接的方法输出,务必保证在输出时所有数据类型都要为字符串类型,切记,切记,切记!
这种方式其实在上面的例子中一直再用了,这里我再复制下来,忘记的朋友可以加深一下印象。
name="Mr.Q"
age=21
height=178.5
weight=65
print(name,age,height,weight,sep="!")
print(name,age,height,weight)
#输出内容为
#Mr.Q!21!178.5!65
#Mr.Q 21 178.5 65
这里所有的变量间都是用“,”隔开的
首先我认为python中的格式化输出与C/C++中的输出有很多相似之处的,到目前为止我所了解到的格式化输出有“%”和format两种,其中format的功能更加强大也更为复杂(主要是我还没有学会,留下了不学无术的眼泪:( )所以在本文我先为大家简单介绍“%”的用法,后面有机会专门写一篇关于format的文章。(因为格式化输出部分内容非常多,所以有不当之处欢迎各位指出)
格式化定义即:数据按照某种特殊的要求输出
假如输入一个整数,希望整数按照十六进制,八进制输出,如果输入一个小数,希望小数保留后面2位数然后输出,或者以科学计数法的方式来输出小数。字符串的输出希望在十个格子内输出,或者左对齐,居中等等。
来看一个例子:
#要求输出的身高为两位小数
name = "Mr.Q"
age=21
height=178.5
print("%s的年龄为%d岁,身高为%.2f厘米"%(name,age,height))
'''
输出内容为:Mr.Q的年龄为21岁,身高为178.50厘米
其中"%s的年龄为%d岁,身高为%.2f厘米"这部分叫做:格式控制符
(name,age,height)这部分叫做:转换说明符
%字符,表示标记转换说明符的开始
'''
python和C语言的区别在于,python中格式控制符和转换说明符用%分隔,而C语言中用逗号,其他的我认为都是大同小异的,后面我会列出格式字符和转义字符的归纳总结。
常用的数值有二进制、八进制、十进制和十六进制
%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
print('%o' % 21)
#输出内容:25
print('%d' % 21)
#输出内容:21
print('%x' % 21)
#输出内容:15
%f ——保留小数点后面六位有效数字
%.3f,保留小数点后三位
%e ——保留小数点后面六位有效数字,指数形式输出
%.3e,保留小数点后三位,使用科学计数法
%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g,保留3位有效数字,使用小数或科学计数法
注:
1.所有保留小数位数均为截断式保留,不涉及四舍五入
2.如果要求保留小数位数多于原数,则在后面补0
print('%f' % 1.11) # 默认保留6位小数
#输出内容:1.110000
print('%.1f' % 1.11) # 取1位小数
#输出内容:1.1
print('%e' % 1.11) # 默认6位小数,用科学计数法
#输出内容:1.110000e+00
print('%.3e' % 1.11) # 取3位小数,用科学计数法
#输出内容:1.110e+00
print('%g' % 1111.1111) # 默认6位有效数字
#输出内容:1111.11
print('%.7g' % 1111.1111) # 取7位有效数字
#输出内容:1111.111
print('%.2g' % 1111.1111) # 取2位有效数字,自动转换为科学计数法
#输出内容:1.1e+03
%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
print('%s' % 'hello world') # 字符串输出
#输出内容:hello world
print('%20s' % 'hello world') # 右对齐,取20位,不够则补位
#输出内容: hello world
print('%-20s' % 'hello world') # 左对齐,取20位,不够则补位
#输出内容:hello world
print('%.2s' % 'hello world') # 取2位
#输出内容:he
print('%10.2s' % 'hello world') # 右对齐,取2位
#输出内容: he
print('%-10.2s' % 'hello world') # 左对齐,取2位
#输出内容:he
格式字符 | 用法说明 |
---|---|
%s | 字符串采用str()的显示 |
%r | 字符串(repr())的显示 |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数(基底写e) |
%E | 指数(基底写E |
%f,%F | 浮点数 |
%g | 指数(e)或浮点数(根据显示长度) |
%G | 指数(E)或浮点数(根据显示长度) |
%% | 字符% |
注:关于%d和%i的区别,我也查阅了许多相关文献,有的说没有区别,有的说%d是读入十进制整数,%i是读入整数的,我个人还是倾向于后者的(奈何我的肚子又咕咕叫了),短期内笔者也没有好的方式证明,不过我会记录这个问题的(吃饭回来继续研究),如果各位大佬能够解决这个问题,欢迎评论指出,不胜感激!
本篇完,如有内容错误及资料引用不当,欢迎各位批评指正(还望嘴下留情,不喜勿喷)。
这是笔者在CSDN中的第一篇文章,从搜集参考文献到整理思路再到最终下笔,用了满满一天的时间(因为我到目前为止已经将python的基本语法学习完了,所以没有算上学习的时间),但是当进入博客开始写的时候又发现很多布局,排版自己也不会,又用了很久的时间学习了这些东西(这里挖个坑,有空写一篇关于小白上手CSDN博客写作的教程)。总之,路漫漫其修远兮,吾将上下而求索。学无止境,一起加油吧!大家有任何问题或者本文出现了哪些错误,欢迎各位大佬在评论区指出~~
写给自己:争取两天一更,加油呀!
1.中国MOOC Python编程基础(河北软件职业技术学院)
2.菜鸟教程python部分
3.CSDN博客:(作者:TheGkeone)https://blog.csdn.net/sinat_28576553/article/details/81154912
4.百度经验:https://jingyan.baidu.com/article/22a299b5c1b2a99e19376a9d.html
5.博客园:(作者:RuiWo)https://www.cnblogs.com/qinchao0317/p/10699717.html
6.CSDN博客:(作者:站在风口)https://blog.csdn.net/abby1559/article/details/79960249