一、print输出
1.1: 直接输出
print("hello world", "hqyj")
name = 'hqyj'
age = 20
print("姓名:", name, "年龄:", age)
1.2: 格式化输出
# 1. %c 单字符
# 2. %s 字符串
# 3. %d %i 十进制整数
# 4. %x %X 十六进制整数
# 5. %o 八进制整数
# 6. %f 小数
# 7. %e %E 科学计数法
name = 'hqyj'
age = 20
print("姓名:%s 年龄:%d" % (name, age)) # 姓名:hqyj 年龄:20
num = 1234.5678
print("%f" % num) # 1234.567800
print("%.2f" % num) # 1234.57
var = 34567
print("%d" % var) # 34567
print("%+d" % var) # +34567
print("%10d" % var) # 34567 (前面有5个空格)
print("%010d" % var) # 0000034567
print("%10.2f" % var) # 34567.00 (前面有2个空格)
a = 25
print("%d" % a) # 25
print("%o" % a) # 31
print("%#o" % a) # 0o31
print("%x" % a) # 19
print("%#x" % a) # 0x19
1.3: format()格式化函数
使用{}占位,在输出语句""后用.format函数。
### 语法格式:print("{}".format())
print("{}炖{}".format("小鸡", "蘑菇")) # 小鸡炖蘑菇
print("{动物}炖{植物}".format(动物="小鸡", 植物="蘑菇")) # 小鸡炖蘑菇
print("{动物}炖{植物}".format(植物="蘑菇", 动物="小鸡")) # 小鸡炖蘑菇
### 控制宽度
s = "hqyj"
print("{:1}".format(s)) # hqyj
# 默认左对齐
print("{:25}".format(s)) # hqyj (后面有21个空格)
# 右对齐
print("{:>25}".format(s)) # hqyj(前面有21个空格)
# 居中对齐
print("{:^25}".format(s)) # hqyj (两边各有空格)
# 居中对齐
print("{:*^25}".format(s)) # **********hqyj***********
### 控制精度
num = 1234.567891789
print("{}".format(num)) # 1234.567891789
print("{:.2f}".format(num)) # 1234.57
s = "abcde"
print("{:.2}".format(s)) # ab
### 进制转换
a = 25
print("{:d}".format(a)) # 25
print("{:#o}".format(a)) # 0o31
print("{:#x}".format(a)) # 0x19
print("{:#b}".format(a)) # 0b11001
### 千位分隔符
b = 1234567890
print("{:,}".format(b)) # 1,234,567,890
1.4: f-string可以解析任意的数据类型【python3.6之后引入的输出方法】
在输出语句""的前面加个f或者F表示解析,""里面使用{}将变量括起来。
# 语法格式:print(f"姓名 {name}, 年龄 {age}")
name = "hqyj"
age = 20
print(f"姓名:{name} 年龄:{age}") # 姓名:hqyj 年龄:20
num = 1234.56789
print(f"{num}") # 1234.56789
print(f"{num:.2f}") # 1234.57
print(f"{num:25}") # 1234.56789(前面有15个空格)
print(f"{num:*^25.2f}") # *********1234.57*********
二、print输出的换行形式
print是自动换行的,若不想自动换行,可以使用如下方式:
1、使用转义字符:\n 回车换行,\t 制表符位
2、使用参数end:指定换行的行为,可以为空格、空字符、\t、\n、逗号等
print("第1行") # 第1行
print("第2行") # 第2行
print("第3行") # 第3行
print("第1行\n第2行\n第3行")
# 第1行
# 第2行
# 第3行
print("第1列",end=' ')
print("第2列",end=' ')
print("第3列")
# 第1列 第2列 第3列
print("第1列",end=',')
print("第2列",end=',')
print("第3列")
# 第1列,第2列,第3列
print("第1列",end='\t')
print("第2列",end='\t')
print("第3列")
# 第1列 第2列 第3列
for i in range(5):
print(f"第{i+1}列", end=' ')
# 第1列 第2列 第3列 第4列 第5列
print() # print()作用就是换行
print("这是独立的一行,其他的执行语句") # 这是独立的一行,其他的执行语句
三、input输入
python中可以直接调用内置函数input进行输入,但是input的输入会将内容都默认为字符串。
# 语法格式:变量 = input("输入的提示文字[可有可无]")
name = input("请输入你的名字:") # xiaoming
print(f"my name is {name}") # my name is xiaoming
# 示例:从键盘输入两个整数,计算两数之和并输出表达式结果
a = input("请输入第一个整数:") # 5
b = input("请输入第二个整数:") # 6
c = a + b
print(f"{a} + {b} = {c}") # 5 + 6 = 56
# 出现问题,结果不对!!! 因为input的输入默认是字符串
# 需要进行类型的转换
四、数据类型转换
4.1: 隐式类型转换
解释器根据上下文自动进行转换,多在数学运算过程中。
a = 4
b = 2
c = a / b
print(type(a), type(b), type(c))
# <class 'int'> <class 'int'> <class 'float'>
4.2: 显式/强制类型转换
调用python内置函数,进行转换。见如下表格:
函数 | 说明 |
int(x [,base]) | 将x转换为一个整数【base是要指定的进制,可选】 |
float(x) | 将x转换为一个浮点数 |
complex(real [,imag]) | 创建一个复数,real为实部,imag为虚部 |
str(x) | 将对象x转换为字符串 |
repr(x) | 将对象x转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列s转换为一个元组 |
list(s) | 将序列s转换为一个列表 |
chr(x) | 将一个整数转换为一个Unicode字符 |
ord(x) | 将一个字符转换为它的ASCII整数值 |
bin(x) | 将一个整数转换为一个二进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
4.3: 练习题
ASCII码值:美国标准信息交换码。
键盘上的按键有两个身份,一个身份是字符本身,一个身份是ASCII码。
空格 编号32
'A' 编号65
'a' 编号97
'0' 编号48
大写字母与小写字母的转换,只需要加减32;
# 1. 输入两个整数a和b,计算两数之和并输出
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
num3 = num1 + num2
print(f"{num1} + {num2} = {num3}")
# 2. 输入一个三位数,输出这个三位数的个位数字,十位数字,百位数字
num = int(input("请输入一个三位数:"))
g = num % 10
s = num // 10 % 10
b = num //100
print(f"你输入的三位数中:百位数是{b}, 十位数是{s}, 个位数是{g}")
# 3. 输入一个小写字母,输出这个小写字母和对应的大写字母
s = input("输入一个小写字母:")
print(f"你输入的小写字母是:{s},对应大写字母是:{chr((ord(s)-32))}")
# 4. 输入一个正整数,输出其对应的十进制、二进制、十六进制数值
num = int(input("输入一个正整数:"))
print(f"十进制是{num}, 二进制是{bin(num)}, 十六进制是{hex(num)}")