赋值运算 | 解释 |
a = 10 | 基本形式 |
a ,b = 10,20 | 元组赋值,等价于a,b=(10,20),赋值序列解包;a ,b=['a' ,'b']等 |
a ,b = b,a | a,b交换 |
[a ,b] = [10,20] | 列表赋值(位置性) |
a ,b = 'AB' | 序列赋值(通用性) |
a ,b = [10,20] | 序列赋值(通用性) |
a ,*b = 'hello' | 扩展的序列解包(python3中特有),b=['e','l','l','o'],b的类型总是列表;b收集后面所有的元素,如果没有元素,则b=[ ] |
a = b = c = 10 | 多目标赋值(最好不要这样赋值) |
a += 1 | 增强赋值,等价于a=a+1 |
顺序结构是流程控制中最简单的一种结构。该结构额的特点是按照语句的先后顺序依次执行,每条语句只执行一次。
顺序结构的程序设计方法如下所述:
- 根据要解决的问题确定变量的个数;
- 如果变量的值需要直接给出,如一个常量,需设计相应的赋值语句;
- 如果变量的值需要用户从键盘输入,需设计相应的输入语句;
- 如果变量是保存运算的结果,需设计相应的处理语句,如把相应的数学公式转换为Python运算表达式,或编写Python函数调用语句;
- 输出相应的信息和结果变量值。
输人三角形3条边的边长(为简单起见,假设这3条边可以构成三角形),计算三角形的面积。提示:三角形面积= Vh(h-a)(h-b)*(h-c),其中,a、b、c是三角形3条边的边长,h是三角形周长的一一半。
import math a = float(input("请输人三角形的边长a:")) #提示用户并输入a b = float(input("请输人三角形的边长b:")) c = float(input("请输人三角形的边长c:")) h=(a+b+c)/2 #三角形周长的一半 area = math. sqrt(h* (h-a) *(h-b)* (h-c)); #三角形面积 print(str. format("三角形三边分别为:a= {0},b= ({1},c={2}", a, b, c)) print(str. format("三角形的面积= {0}", area))
---------------------------------打印结果
请输人三角形的边长a:3
请输人三角形的边长b:4
请输人三角形的边长c:5
三角形三边分别为:a= 3.0,b= (4.0,c=5.0
三角形的面积= 6.0
import math #导入math数学函数库 r = input("请输入您计算机的半径(保留两位小数):") # 使用input()函数获取到用户输入的参数 r = float(r) #将用户输入的参数转换成浮点数 pi = math.pi #使用math.pi定义圆周率 c = 2 * pi * r #使用周长公式计算圆的周长 s = pi * r ** 2 #使用面积公式计算圆的面积,pow(r,2) print ("该圆的周长为{:.2f},该圆的面积为{:.2f}".format(c,s)) #使用Print方法输出圆的周长和面积
#第二章实验作业计算扔铅球的成绩 import math h = float(input("enter 身高:")) x = float(input("enter 弧度:")) s = h/math.tan(x) #正切tan(θ)=y/x print("距离s等于{:.3f}".format(s))
- python赋值语句
- Python流程控制结构主要分为3种:顺序结构、选择结构和循环结构
- 顺序结构示例:
- 变量
程序中的a,b,c就是变量,Python中的变量有若干中类型,这里我们可以简单理解成变量是一种存储数据的容器,程序中的“a = float(input("xxx"))”,就是将“=”号后面的返回的数据,也就是用户输入的数据,经过float函数转换后存储到变量a中。在后续的文章中,会对变量的各种类型进行详细的讲解。 - 函数
我们可能很好奇,程序中的int(input("xxx"))是干什么的,其实,这是两个函数的嵌套。
那么什么是函数呢?
我们可以将数学中的函数做类比,例如数学中的f(x) = 2x + 1,我们给定一个参数x,函数f(x)就会根据其已经定义好的运算规则,计算出相应的结果。
类似地,Python中的函数也可以传进参数,执行其已经定义好的流程,返回结果。
这里代码中用到了3个函数:int()、input()、print(),他们各自有各自的功能。int()将传入的一个参数转化成整数并返回;input()可以输出提示文字,并接收用户输入的信息并以字符串的形式返回(字符串是变量的一种类型);print()可以将想输出的信息输出到控制台...
后续会对函数进行详细的讲解。 - 运算符
Python中可以使用各类运算符,在这里的“+”号就是一个,它的功能是将其两侧的变量相加,得到结果,不同的变量类型进行相加所得到的结果不同。这里的“=”号也是一种运算符,其作用是将其右侧的数据赋值给其左侧,也就是说数据的流向是从右向左流的,即a + b = c这种用法是不合法的。后续也会对运算符进行详细的讲解。 - 注释
在编辑框中输入井号“#”,在同一行“#”号后面输入想解释的内容,这就是程序的注释。
解释器在解释每一行代码的时候,会把注释自动忽略,只解释“#”号之前的代码。适当的注释有助于帮助程序员读懂代码。
值得注意的是,解释器只认为“#”号同一行后面的文字为注释,而并非“#”号后面的所有文字或者代码。也就是说下面的代码中,程序只认为“#”号后的第一行是注释,而第二行不是。
- 变量
- 用户输入圆的半径,求圆的周长和圆的面积
- 第二章实验作业计算扔铅球的成绩
字符串格式化
用法:" %说明符 %说明" % (参数1,参数2,......)
转换说明符 | 说明 |
% | 带百分号输出,不能用在格式化运算符 %中 |
%b | 转换为带符号的二进制形式的字符串,不能用在格式化运算符 %中 |
%i | 转换为带符号的十进制形式的整数,不能用在format中 |
%d | 转换为带符号的十进制形式的字符串 |
%o | 转换为带符号的八进制形式的字符串 |
%x,%X | 转换为带符号的十六进制形式的字符串 |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f,%F | 转化为十进制形式的浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 输出整数对应的 Unicode 字符 |
%r | 使用 repr() 将变量或表达式转换为字符串 |
%s | 使用 str() 将变量或表达式转换为字符串 |
标志 | 说明 |
---|---|
- | 指定左对齐 |
+ | 表示输出的数字总要带着符号;整数带+ ,负数带- 。 |
0 | 表示宽度不足时补充 0,而不是补充空格。 |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
事例代码如下:
print("my name is %s and i am %d years old" %("xiaoming",18)) #输出结果:my name is xiaoming and i am 18 years old print("Hello,%s" % "Tom") #输出结果:Hello,Tom # %d digit 数字 age = 18 print('年龄是:%d' % age) age=18.5 # int(18.5)--->18 取整数 print('年龄是:%d' % age) year=2019 print('今年是:%02d' % year) # 仍然是2019 但是%f就可设置位数 name = "C语言中文网" age = 8 url = "http://c.biancheng.net/" print("%s已经%d岁了,它的网址是%s。" % (name, age, url)) #指定小数精度 f = 3.141592653 # 最小宽度为8,小数点后保留3位 print("%8.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0 print("%08.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0,带符号 print("%+08.3f" % f) print('%#x' % 108) #0x6c 十进制108,十六进制等于6c,int('6c',base=16)
1)、使用格式:
<模板字符串中包括{<参数序号>: <格式控制标记>}>.format(<逗号分隔的参数>)
2)、<格式控制标记>用来控制参数显示时的格式,包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,如下图:
3)、参数序号从0 开始编号。format 函数可以接受不限个参数,位置可以不按顺序。
如:"{1} {0} {1}".format("hello", "world") 输出结果为“'world hello world”。
4)、format()
方法优点如下:
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) | 1011 11 13 b 0xb 0XB | 进制 |
字符串函数format函数事例代码如下:
>>> "{0} {1}".format("hello", "world") # 设置指定位置 #'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 #'world hello world' >>> print("{:.2f}".format(3.1415926)); #3.14 print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")) # 通过字典设置参数 site = {"name": "菜鸟教程", "url": "www.runoob.com"} print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数 my_list = ['菜鸟教程', 'www.runoob.com'] print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的 #列表 >>>list=['罗带同心结未成','江头潮已平'] >>>"{0[0]}".format(list) '罗带同心结未成' >>> print("这是一句诗:{0[0]}".format(list)) 这是一句诗:罗带同心结未成 #通过字典 >>> di={"学校":"某某大学","姓名":"我爱学习"} >>> "地点:{学校},姓名:{姓名}".format(**di) '地点:某某大学,姓名:我爱学习'
f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。
salary = input('请输入薪资:') # 计算出缴税额,存入变量tax tax = int(salary) *25/100 # 计算出税后工资,存入变量aftertax aftertax = int(salary) *75/100 print(f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元')
- (了解) 旧式字符串格式化(% 运算符)
- 新式字符串格式化(str.format)
- 不需要关注数据类型,而在%方法中%s只能替代字符串类型
- 单个参数可以多次输出,参数顺序可以不相同
- 填充方式十分灵活,对齐方式十分强大
- 官方推荐用的方式,%方式将会在后面的版本被淘汰
- f-string格式化
- f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。
-
salary = input('请输入薪资:') # 计算出缴税额,存入变量tax tax = int(salary) *25/100 # 计算出税后工资,存入变量aftertax aftertax = int(salary) *75/100 print(f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元')