Python的基本语法和格式规范
在开始学习之前,我们做一道题,来作为大家今天的开场白!!
Q:现有信息学号为u20201111的学生,数学成绩为85,化学成绩为82.46,请按下方格式输出该信息
u20201111 的数学分数是 85
u20201111 的化学分数是 82.46
A:
uid = 'u20201111'
Math = 85
Chemistry = 82.46
Sum = Math + Chemistry
print("%s 的数学成绩是 %d" %(uid,Math))
print("%s 的化学成绩是 %.2f" %(uid,Chemistry))
print("%s 的总成绩是 %d"%(uid,Sum))
'''
上面的小例题大家看懂了吗?没看懂的要亲手敲一下哦~
'''
学前引导:
基本操作和格式规范(本文重点)
编码规范
注释
打印
格式化输出
format用法
转义字符
编码规范
国际惯例,文件编码和 Python 编码格式全部为 utf-8
例如:在 Python 代码的开头,要统一加上 # -- coding: utf-8 --。
命名规范
变量和标识符,变量和标识符在命名规则上都遵循以下原则,
- 只能由字母、数字和下划线组成,且不能以数字开头
- 命名要做到见名知意:一般来说,只要是自定义的名字都可以被称为标识符,包括变量、函数名、类名、模块名、包名,所以变量其实只是标识符的一个子类。
变量常见的命名风格有三种:
- 单词全部纯小写,单词之间使用下划线隔开,例如:data_science
- 小驼峰式命名,第一个单词字母全小写,其他单词首字母大写,例如:dataScience
- 大驼峰式命名,每个单词的首字母均大写,例如:DataScience
- 以上这些命名规范不仅仅适用于变量,同时也适用于函数、类等;
- 在Python中,方法和变量名一般采用第一种方式,类名采用第三种方式,第二种方式在Java声明函数时比较常见。
- 切记,标识符的名字不能和Python的关键字冲突(可以使用keyword.kwlist查看Python所有的关键字)
注释
Python2-3输出区别
Python3 使用 print 必须要以小括号包裹打印内容,比如
print('hi')
Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如
print 'hi'
现在都是以python3为主
Python中单行注释以 # 开头,实例如下:
#我的第一行代码
print('hello world') #我的第二个注释
hello world
多行注释可以用多个 # 号,还有 ''' 和 """:
'''
我真的
可以
注释
很多行
'''
"""
我也能
注释
很多行
"""
print('hello world')
hello world
格式化输出
**拼接符 '+' **
print('变量名:'+变量)
注意:变量必须为字符串类型
拼接符','
print('变量名:',变量)
格式化符号
整数输出:
%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
print('%o' % 20) #以八进制输出20
print('%d' % 20) #以十进制输出20
print('%x' % 20) #以十六进制输出20
24
20
14
浮点数输出
- %f ——保留小数点后面六位有效数字
%.3f,保留3位小数位
- %e ——保留小数点后面六位有效数字,指数形式输出
%.3e,保留3位小数位,使用科学计数法
- %g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g,保留3位有效数字,使用小数或科学计数法
下面做一系列的演示:
print('%f' % 1.11) # 默认保留6位小数
print('%.1f' % 1.11) # 取1位小数
print('%e' % 1.11) # 默认6位小数,用科学计数法
print('%.3e' % 1.11) # 取3位小数,用科学计数法
print('%g' % 1111.1111) # 默认6位有效数字
print('%.7g' % 1111.1111) # 取7位有效数字
print('%.2g' % 1111.1111) # 取2位有效数字,自动转换为科学计数法
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03
format的用法
format的用法很常见,并且实用,大家可以根据案例多进行模仿与演示。
format就是变量之间的映射,它有三种形式
- (1)不带编号,即“{}”
- (2)带数字编号,可调换顺序,即“{1}”、“{2}”
- (3)带关键字,即“{a}”、“{tom}”
映射案例如下:
print('{} {}'.format('hello','world')) # 不带字段
print('{0} {1}'.format('hello','world')) # 带数字编号
print('{0} {1} {0}'.format('hello','world')) # 打乱顺序
print('{1} {1} {0}'.format('hello','world'))
print('{a} {tom} {a}'.format(tom='hello',a='world')) # 带关键字
hello world
hello world
hello world hello
world world hello
world hello world
格式化字符串
- f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法。
- f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;
- f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式。
先尝试一下str、int类型的变量
name = "小风"
age = 18
print(f"姓名:{name},年龄:{age}")
姓名:小风,年龄:18
再试一下字典
one_dict = {"name": "小风", "age": 18, "hobby": ["running", "singing"]}
print(f"姓名:{one_dict['name']},爱好:{one_dict['hobby']}")
姓名:小风,爱好:['running', 'singing']
格式规范:
代码块快捷键:CTRL+ALT+L
转义字符
转义字符‘\’可以转义很多字符
- ‘\n’表示换行
- ’\t‘表示制表符
- 字符’\‘本身也要转义,所以‘\’表示的字符就是‘\’
下面为‘\’在输出过程中可能出现的情况;
print('I\'m ok.')
I'm ok.
print('I\'m learning\nPython.')
I'm learning
Python.
print('\\\n\\')
小作业
-
1、学号为u20201111的学生,数学成绩为85,化学成绩为82.46,按格式输出:
u20201111 的数学分数是 85
u20201111 的化学分数是 82.46
并且求出该学号学生的总成绩,以及平均分
-
2、给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,以空格分隔。
输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。
-
3、给定学生三门成绩
(1)计算该学生的平均成绩并打印平均成绩保留两位小数点
(2)计算该学生语文成绩占总成绩的百分之多少?并打印,百分比也保留两位小数
Chinese = 92 Math = 98.5 English = 93
-
4、用转义字符,输出一张todo list,包含4条内容并用制表符对齐。格式如下:
This is todo list for today: * Meeting at 11:00 * lunch with Mike * buy milk * do yoga
-
5、分别用多种格式输出,答案不限,输入参数为like,learning:I like Python, and I'am learning(注意上引号)
进阶题:
编辑完成以下名片的显示:
==================================
姓名: 努力赚钱的小风
QQ:xxxxxxx
手机号:185xxxxxx
公司地址:北京市xxxx
Blog:www.a2data.cn
==================================
#思考,如何格式化输出?换行?
#进阶思路,如果姓名年龄是否可以是变量传入,或者外部输入呢?