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. 给定两个整数AB,输出从AB的所有整数以及这些数的和。

    输入格式:

    输入在一行中给出2个整数AB,其中−100≤AB≤100,以空格分隔。

    输出格式:

    首先顺序输出从AB的所有整数,每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
  1. 分别用多种格式输出,答案不限,输入参数为like,learning:I like Python, and I’am learning(注意上引号)

进阶题:

编辑完成以下名片的显示:

==================================
姓名: 努力赚钱的小风    
QQ:xxxxxxx
手机号:185xxxxxx
公司地址:北京市xxxx
Blog:www.a2data.cn
==================================

#思考,如何格式化输出?换行?
#进阶思路,如果姓名年龄是否可以是变量传入,或者外部输入呢?

评论