第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语言实现代码如下:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. printf("Hello, World!\n");
  5. return 0;
  6. }

Python语言实现代码更简单,用输出函数“print()”,以字符串’hello, world’ 为参数就可以了,不需要行末的分号、参数中的换行符,字符串外面的引号可以用单引号也可以用双引号:

  1. print('hello, world') # hello, world

你好, 世界

要实现用中文问好,只需要修改字符串就可以了:

  1. print('你好, 世界') # 你好, 世界

向自己问好

为程序增加一个输入,就可以实现个性化的问候:

  1. user = input() # 输入一个表示名字的字符串
  2. print('你好,', user) # 你好, 小明,参数是逗号分隔的两个字符串
  3. print('你好, ' + user) # 你好, 小明,参数是加号拼接成的一个字符串
  4. print(f'你好, {user}') # 你好, 小明,f-string,参数放大括号内
  5. print('你好, {}'.format(user)) # 你好, 小明,str.format()参数放format中

再增加一个输入:

  1. user = input() # 输入一个表示名字的字符串
  2. university = input() # 输入一个表示学校名字的字符串
  3. print(f'你好, {user}同学!') # 你好, 小明同学!
  4. print(f'欢迎来到{university}学习!') # 欢迎来到武汉理工大学学习!

输出格式控制

控制格式输出个人信息:
大括号中的冒号表示后面为格式控制,<表示居左对齐,数字为输出占位宽度,这样可以控制输出格式对齐:
姓名:小明 性别:男 年龄:20
姓名:欧阳奋强 性别:男 年龄:122

  1. import datetime
  2. stu_name = input() # 输入一个表示名字的字符串
  3. gender = input()
  4. birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
  5. year = datetime.datetime.now().year # 获取当前年份值
  6. age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
  7. # 在同一行内输出姓名、性别和年龄
  8. print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
  9. # 姓名:Tom_________ 性别:Male 年龄:20
  10. # 姓名:Jerry_______ 性别:Female 年龄:19

Tom
Male
20020801
姓名:Tom_ 性别:Male 年龄:20
Jerry
Female
20030515
姓名:Jerry_ 性别:Female 年龄:19

向多位同学问好

确定数量

增加循环实现重复输入和输出,下面有有限次输入,次数由用户输入控制:

  1. for i in range(3): # 循环3次,每次向一位同学问好
  2. user = input() # 输入一个表示名字的字符串
  3. print(f'你好, {user}同学!') # 你好, 小明同学!

次数由用户输入确定:

  1. num = int(input()) # 输入一个正整数,转为整型
  2. for i in range(num): # 循环num次,每次向一位同学问好
  3. user = input() # 输入一个表示名字的字符串
  4. print(f'你好, {user}同学!') # 你好, 小明同学!
  1. import datetime
  2. num = int(input()) # 输入一个正整数num
  3. for i in range(num): # 循环num次,重复输入
  4. stu_name = input() # 输入一个表示名字的字符串,输入回车得到空字符串
  5. gender = input() # 输入性别
  6. birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
  7. year = datetime.datetime.now().year # 获取当前年份值
  8. age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
  9. # 在同一行内输出姓名、性别和年龄
  10. print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
  11. # 姓名:Tom_________ 性别:Male 年龄:20
  12. # 姓名:Jerry_______ 性别:Female 年龄:19

数量不确定

输入次数不确定时,构建无限循环,当用户直接回车时,结束输入:

  1. import datetime
  2. while True:
  3. stu_name = input() # 输入一个表示名字的字符串,输入回车得到空字符串
  4. if not stu_name: # 若名字是空字符串,not stu_name值为True
  5. break # 结束循环
  6. gender = input() # 输入性别
  7. birthdate = input() # 输入一个8位数表示出生年月日,月日不足2位时前面补0
  8. year = datetime.datetime.now().year # 获取当前年份值
  9. age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
  10. # 在同一行内输出姓名、性别和年龄
  11. print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20
  12. # 姓名:Tom_________ 性别:Male 年龄:20
  13. # 姓名:Jerry_______ 性别:Female 年龄:19

向文件中同学问好

学生信息可以存储在文件中,读文件中的数据并格式化输出:
student_info.csv

  1. Tom ,Male ,20020801
  2. Jerry,Female,20030515
  3. Ada ,Male ,20021231
  1. with open('../data/csv/student_info.csv') as stu:
  2. stu_info = [x.strip().split(',') for x in stu]
  3. for item in stu_info: # 遍历二维列表,item值为列表
  4. stu_name = item[0] # 获得列表序号0的数据
  5. print(f'你好, {stu_name}同学!') # 你好, 小明同学!

输出
你好, Tom 同学!
你好, Jerry同学!
你好, Ada 同学!

格式化输出

  1. import datetime
  2. with open('../data/csv/student_info.csv') as stu:
  3. stu_info = [x.strip().split(',') for x in stu]
  4. print(stu_info) # 输机查看读文件结果
  5. for item in stu_info: # 遍历二维列表,item值为列表
  6. stu_name = item[0] # 获得列表序号0的数据
  7. gender = item[1] # 获得列表序号1的数据
  8. birthdate = item[2] # 获得列表序号2的数据
  9. year = datetime.datetime.now().year # 获取当前年份值
  10. age = year - int(birthdate[:4]) # int(birthdate[:4]获取出生年的数值
  11. # 在同一行内输出姓名、性别和年龄
  12. print(f'姓名:{stu_name:_<12} 性别:{gender:<6} 年龄:{age:<6}') # 姓名:小明 性别:男 年龄:20

输出
姓名:Tom _ 性别:Male 年龄:20
姓名:Jerry_ 性别:Female 年龄:19
姓名:Ada _ 性别:Male 年龄:20