Python 基础篇(一)
print( )函数、input( )函数
用 Python 来打印 'Hello, world' 你会惊奇地发现Python是如此的简洁与优雅。
# 打印Hello, world
print('Hello, world')
Hello, world
# input()函数:接受一个标准输入数据,返回为string类型
name = input("请输入你的昵称:")
print("你好,"+ name + "!")
请输入你的昵称:你好,行远见大!
字符串:str( )、整型数:int( )、浮点数:float( )
- 字符串:str( )、整型数:int( )、浮点数:float( ) 用法
- 类型转换
# str()的作用:把一个数或任何其他类型转换成字符串
name = input("请输入你的昵称:")
# 其实在此处有name = str(name)的一个过程
print("你好,"+ name + "!")
请输入你的昵称:你好,行远见大!
# 此处str()的作用:把数值变成了字符串
a = str(input("输入一个数字:"))
print(a)
b = str(input("输入一个数字:"))
print(b)
print("打印两个数字相加:%s " % (a + "+" + b))
输入一个数字:3 输入一个数字:5 打印两个数字相加:3+5
# 此处int()的作用:把字符串变成了数值
a = "5"
b = int(a)
# 去掉了双引号
print(b)
5
# 此处int()的作用:浮点数变整数,直接把小数点后的内容去掉
a = 3.222
b = int(a)
print(b)
3
# 输入一个整数,如果输入小数则报错
num = int(input("请输入一个整数:"))
print(num)
请输入一个整数:5
# 此处float()的作用:把整数转换成浮点数
a = 10
b = float(a)
print(b)
10.0
# 此处float()的作用:把字符串转换成浮点数
a = "10"
b = float(a)
print(b)
10.0
# 输入一个浮点数,如果输入整数则强制转换成浮点数
num = float(input("请输入一个浮点数:"))
print(num)
请输入一个浮点数:3.2
type( )函数、isinstance( )函数
用以识别变量的类型
# type()函数
a, b, c, d = 1, 2.0, "Hello, world", True
print(a, type(a), b, type(b), c, type(c), d, type(d))
1 <class 'int'> 2.0 <class 'float'> Hello, world <class 'str'> True <class 'bool'>
# isinstance()函数
print(isinstance("Hello, world", str)) # 返回True
print(isinstance("Hello, world", int)) # 返回False
print(isinstance(5,int)) # 返回True
print(isinstance(3.2, float)) # 返回True
print(isinstance(True, bool)) # 返回True
True False True True True
字符串格式化输出
格式化输出(formalized export)
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%d | 格式化整数 |
%e | 格式化浮点数,用科学计数法 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%g | 格式化浮点数字,根据值的大小采用%e或%f |
%o | 格式化无符号八进制数 |
%s | 格式化字符串 |
%u | 格式化无符号整型 |
%x | 格式化无符号十六进制数(小写字母) |
%X | 格式化无符号十六进制数(大写字母) |
# 格式化输出数字
age = 10
print("我今年%d岁了" % age)num = int(input("请输入一个整数:"))
print("数字是:%d !" % num)
我今年10岁了 请输入一个整数:数字是:10 !
# 格式化输出字符串
print("我的名字是%s,我的国籍是%s。" % ("行远见大","中国"))
我的名字是行远见大,我的国籍是中国。
end函数、sep函数
改变打印间隔
# end函数
print("hello",end="") # end="" 不换行,直接链接下一句
print("world",end="\t") # end="\t" 中间空个Tab
print("next",end="\n") # end="\n" 换行
print("python")
helloworld next python
# sep函数
print("www","baidu","com")
print("www","baidu","com",sep=".")
print("www","baidu","com",sep="\n")
www baidu com www.baidu.com www baidu com
python 四则运算
a, b, c, d, e = 1, 2, 3, 4, 5
print(a + b) # 加
print(a - b) # 减
print(c * b) # 乘
print(c ** 2) # 平方
print(b ** 0.5) # 根号
print(a / d) # 除
print(e // b) # 地板除(向下取整)
print(e % b) # 取余数
e += 1 # 等价于 e = e + 1
print(e)
3 -1 6 9 1.4142135623730951 0.25 2 1 6
if 条件判断语句
- 条件分支
- 引入外部的库(随机数)
- 三元操作符
- assert函数
# 条件分支
num = int(input("请输入1到100之间的整数:"))
print(num)
if 1 <= num <= 100:print("输入正确!")
else:print("输入错误!")
请输入1到100之间的整数:10 输入正确!
# 猜固定数字
temp = input("从1~10中猜个正整数:")
print(temp)
guess = int(temp)
while guess != 5:temp = input("猜错了,请重猜:")guess = int(temp)if guess == 5:print("恭喜你,猜对了!")else:if guess > 5:print(guess)print("猜错了,要往小的猜!")else:print(guess)print("猜错了,要往大的猜!")
print("恭喜你,猜对了,游戏结束。")
从1~10中猜个正整数:2 猜错了,请重猜:4 猜错了,要往大的猜! 猜错了,请重猜:6 猜错了,要往小的猜! 猜错了,请重猜:恭喜你,猜对了! 恭喜你,猜对了,游戏结束。
# 猜随机数字
import random
secret = random.randint(1,10)
temp = input("从1~10中猜个正整数:")
print(temp)
guess = int(temp)
while guess != secret:temp = input("猜错了,请重猜:")guess = int(temp)if guess == secret:print("恭喜你,猜对了!")else:if guess > secret:print(guess)print("猜错了,要往小的猜!")else:print(guess)print("猜错了,要往大的猜!")
print("正确答案是:%d!" % guess)
print("恭喜你,猜对了,游戏结束。")
从1~10中猜个正整数:3 猜错了,请重猜:5 猜错了,要往大的猜! 猜错了,请重猜:8 猜错了,要往小的猜! 猜错了,请重猜:7 猜错了,要往小的猜! 猜错了,请重猜:恭喜你,猜对了! 正确答案是:6! 恭喜你,猜对了,游戏结束。
# 生成随机数
import random # 引入随机库
x = random.randint(0,5) # 随机生成0到5的数(0,1,2,3,4,5)
print(x)
5
# 现有两个不相等的数字,输出最小的数字
x , y = 3, 5
if x < y:small = x
else:small = y
print(small)
3
I
# 三元操作符
x , y = 3, 5
# 用三元操作符的条件表达式可以一句话来完成条件判断与赋值操作:
small = x if x < y else y
print(small)
3
# assert函数
assert 5 > 3
print("assert函数,当函数为真时,程序继续往下执行。")
assert函数,当函数为真时,程序继续往下执行。
如果输入 assert 3 > 5 时,函数为假,程序自动崩溃并抛出AssertionError的异常。
assert函数的作用:在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用。
while循环语句、for循环语句
- while循环语句语法:while 判断条件:\n 执行语句
- for循环语句语法:for 目标 in 表达式:
- range函数语法:range([strat, ]stop[, step=1])它有三个参数,其中用中括号括起来的两个表示这两个函数是可选的。step=1表示第三个参数的值默认值是1,range这个内置函数(BIF)的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列
# while循环语句
i = 0
while i < 5 :print("当前是第%d次执行循环" % (i+1))print("i = %d" % i)i += 1
当前是第1次执行循环 i = 0 当前是第2次执行循环 i = 1 当前是第3次执行循环 i = 2 当前是第4次执行循环 i = 3 当前是第5次执行循环 i = 4
# 用while循环语句执行1到100求和
i = 0 ; sum = 0
while i <= 100 :sum = sum + ii += 1
print(sum)
5050
# 用while循环语句执行1到n求和
n = int(input("请输入求和数:"))
print(n)
i = 0
sum = 0
while i <= n :sum = sum + ii += 1
print("1到%d的和为:%d" % (n,sum))
请输入求和数:520 1到520的和为:135460
# 用while循环语句执行m到n求和
m = int(input("请输入起始求和数:"))
print(m)
n = int(input("请输入结束求和数:"))
print(n)
sum = 0
b = m
while m <= n :sum = sum + mm += 1
print("%d到%d的和为:%d" % (b,n,sum))
请输入起始求和数:300 请输入结束求和数:520 300到520的和为:90610
# while循环语句和else搭配用法
count = 0
while count < 5:print(count,"小于5")count += 1
else:print(count,"大于或等于5")
0 小于5 1 小于5 2 小于5 3 小于5 4 小于5 5 大于或等于5
# for循环语句
word = "helloworld"
for i in word:print(i,end=" ")
h e l l o w o r l d
# range函数,左闭右开
for i in range(5):print(i,end=" ")
0 1 2 3 4
# 从0开始,到10结束,步进值为3
for i in range(0,10,3):print(i,end=" ")
0 3 6 9
# 从-10开始,到-70结束,步进值为30
for i in range(-10,-100,-30):print(i)
-10 -40 -70
# 用for循环语句执行1到100求和
sum = 0
for i in range(1,101):sum = sum + i
print(sum)
5050
break语句、continue语句
- break语句的作用是终止当前循环,也就是跳出循环体。
- continue语句的作用是终止本轮循环,并开始下一轮循环。值得注意的是,在开始下一轮循环之前,它会先测试一下循环条件,只有在循环条件为True的情况下,它才会开始下一轮循环,如果是False的话,它会退出循环。
# break语句
i = 0
while i < 10:i = i + 1if i == 6:break print(i)
1 2 3 4 5
# break语句
bingo = "长江"
answer = input("中国最长的河流:")while True:if answer == bingo:breakanswer = input("答错了,请重新输入:")print(answer)
print("回答正确!")
中国最长的河流:长江 回答正确!
# continue语句
for i in range(10):if i % 2 != 0:print(i)continuei += 2print(i,end="\t")
2 1 4 3 6 5 8 7 10 9
# 此处continue 用处:跳过本次循环里边下面所有的语句
i = 0
while i < 10:i = i + 1if i == 5:continue # 结束本次循环print(i)
1 2 3 4 6 7 8 9 10
本章练习题
1. 数字配对
要求:纠正如下代码中的错误并使程序正常运行
# 纠正如下代码
a = 5
b = input("请输入数字5:")while True:if b == a:breakb = input("配对失败,请重新输入或点击上方“中断”按钮退出循环:")print(b)
print("数字配对成功!")
2. 等第评分
会考结束了,课代表帮老师录入考生等第。考生成绩在[90,100]等第评分为A,[80,90)等第评分为B,[70,80)等第评分为C,[60,70)等第评分为D,[0,60)等第评分为F,输入成绩大于100分或小于0分时返回“输入错误!”。
要求:补全代码并使程序正常运行
# 请在此处作答第二题
score = int(input("请输入一个分数:"))
if 100 >= score >= 90:print("A")
3. 石头剪刀布
要求:补全代码并使程序正常运行
print("来玩一局剪刀石头布,输掉的人今天请客吃饭~")
a = int(input("请输入数字 0(剪刀)、1(石头)、2(布): "))
if a == 0 :print("你出:剪刀(0)")
elif a == 1 :print("你出:石头(1)")
elif a == 2 :print("你出:布(2)")
else :print("哼~你赖皮,只能输入0或1或2!")print("不过我今天心情好,不跟你计较~")
# 补全代码并使程序正常运行if b == 0 :print("我出:剪刀(%d) " % b)
elif b == 1 :print("我出:石头(%d) " % b)
else :print("我出:布(%d) " % b)if a == 2 and b == 0 :print("哈哈,你输了!")
elif a == 0 and b == 2 :print("嘿嘿,你赢了!")
elif a < b :print("哈哈,你输了!")
elif a > b :print("嘿嘿,你赢了!")
else:print("别得意,平局而已!")
4. 用while循环语句实现九九乘法表
要求:用while循环语句
# 请在此处作答第四题
5. 用for循环语句实现九九乘法表
要求:用for循环语句
# 请在此处作答第五题