第1章
第1章 输入输出
第2章 数值类型
第3章 循环分支
第5章 字符串格式控制
第6章 列表
第8章 文件
Hello, world
“Hello, world”程序是指在计算机屏幕上输出“Hello world”这行字符串的计算机程序,“Hello World”的中文意思是“你好,世界。”。这个例程在 Brian Kernighan 和 Dennis M. Ritchie合著的The C Programme Language使用而广泛流行。因为它的简洁,实用,并包含了一个该版本的C程序首次在1974年 Brian Kernighan 所撰写的 Programming in C: A Tutorial 出现。
C语言实现代码如下:
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
Python语言实现代码更简单,用输出函数“print()”,以字符串’hello, world’ 为参数就可以了,不需要行末的分号、参数中的换行符,字符串外面的引号可以用单引号也可以用双引号:
print('hello, world') # hello, world
你好, 世界
要实现用中文问好,只需要修改字符串就可以了:
print('你好, 世界') # 你好, 世界
向自己问好
为程序增加一个输入,就可以实现个性化的问候:
user = input() # 输入一个表示名字的字符串
print('你好,', user) # 你好, 小明,参数是逗号分隔的两个字符串
print('你好, ' + user) # 你好, 小明,参数是加号拼接成的一个字符串
print(f'你好, {user}') # 你好, 小明,f-string,参数放大括号内
print('你好, {}'.format(user)) # 你好, 小明,str.format()参数放format中
再增加一个输入:
user = input() # 输入一个表示名字的字符串
university = input() # 输入一个表示学校名字的字符串
print(f'你好, {user}同学!') # 你好, 小明同学!
print(f'欢迎来到{university}学习!') # 欢迎来到武汉理工大学学习!
输出格式控制
控制格式输出个人信息:
大括号中的冒号表示后面为格式控制,<表示居左对齐,数字为输出占位宽度,这样可以控制输出格式对齐:
姓名:小明 性别:男 年龄:20
姓名:欧阳奋强 性别:男 年龄:122
import datetime
stu_name = input() # 输入一个表示名字的字符串
gender = input()
birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
year = datetime.datetime.now().year # 获取当前年份值
age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
# 在同一行内输出姓名、性别和年龄
print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
# 姓名:Tom_________ 性别:Male 年龄:20
# 姓名:Jerry_______ 性别:Female 年龄:19
Tom
Male
20020801
姓名:Tom_ 性别:Male 年龄:20
Jerry
Female
20030515
姓名:Jerry_ 性别:Female 年龄:19
向多位同学问好
确定数量
增加循环实现重复输入和输出,下面有有限次输入,次数由用户输入控制:
for i in range(3): # 循环3次,每次向一位同学问好
user = input() # 输入一个表示名字的字符串
print(f'你好, {user}同学!') # 你好, 小明同学!
次数由用户输入确定:
num = int(input()) # 输入一个正整数,转为整型
for i in range(num): # 循环num次,每次向一位同学问好
user = input() # 输入一个表示名字的字符串
print(f'你好, {user}同学!') # 你好, 小明同学!
import datetime
num = int(input()) # 输入一个正整数num
for i in range(num): # 循环num次,重复输入
stu_name = input() # 输入一个表示名字的字符串,输入回车得到空字符串
gender = input() # 输入性别
birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
year = datetime.datetime.now().year # 获取当前年份值
age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
# 在同一行内输出姓名、性别和年龄
print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
# 姓名:Tom_________ 性别:Male 年龄:20
# 姓名:Jerry_______ 性别:Female 年龄:19
数量不确定
输入次数不确定时,构建无限循环,当用户直接回车时,结束输入:
import datetime
while True:
stu_name = input() # 输入一个表示名字的字符串,输入回车得到空字符串
if not stu_name: # 若名字是空字符串,not stu_name值为True
break # 结束循环
gender = input() # 输入性别
birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
year = datetime.datetime.now().year # 获取当前年份值
age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
# 在同一行内输出姓名、性别和年龄
print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
# 姓名:Tom_________ 性别:Male 年龄:20
# 姓名:Jerry_______ 性别:Female 年龄:19
向文件中同学问好
学生信息可以存储在文件中,读文件中的数据并格式化输出:
student_info.csv
Tom ,Male ,20020801
Jerry,Female,20030515
Ada ,Male ,20021231
with open('../data/csv/student_info.csv') as stu:
stu_info = [x.strip().split(',') for x in stu]
for item in stu_info: # 遍历二维列表,item值为列表
stu_name = item[0] # 获得列表序号0的数据
print(f'你好, {stu_name}同学!') # 你好, 小明同学!
输出
你好, Tom 同学!
你好, Jerry同学!
你好, Ada 同学!
格式化输出
import datetime
with open('../data/csv/student_info.csv') as stu:
stu_info = [x.strip().split(',') for x in stu]
print(stu_info) # 输机查看读文件结果
for item in stu_info: # 遍历二维列表,item值为列表
stu_name = item[0] # 获得列表序号0的数据
gender = item[1] # 获得列表序号1的数据
birthdate = item[2] # 获得列表序号2的数据
year = datetime.datetime.now().year # 获取当前年份值
age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
# 在同一行内输出姓名、性别和年龄
print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
输出
姓名:Tom _ 性别:Male 年龄:20
姓名:Jerry_ 性别:Female 年龄:19
姓名:Ada _ 性别:Male 年龄:20