Python(二)~22.01.30

一、变量
1.类型转换函数

int(x)将x转换为一个整数
float(x)将x转换为一个浮点数

将通过input输入的字符串转换为数字类型。

>>> int("123")
123
>>> type(int("123"))
<class 'int'>
>>> type(float("12.3"))
<class 'float'>  |
# 单价
price_str = input("苹果的单价:")
# 重量
weight_str = input("苹果的重量:")
# 总金额
# 两个字符串变量之间不能直接做乘法
price = float(price_str)
weight = float(weight_str)
money = price * weight
print(money)

–》改进以上代码(接收用户输入的同时就使用float函数进行转换)
两个函数嵌套使用

price = float(input("苹果的单价:"))
weight = float(input("苹果的重量:"))
money = price * weight
print(money)

2.变量的格式化输出
如果希望输出文字信息的同时,一起输出数据,就需要使用到格式化操作符%(专门用于处理字符串中的格式)。
包含 % 的字符串,被称为格式化字符串。
% 和不同的字符连用,不同类型的数据需要使用不同的格式化字符。

格式化字符含义
%s字符串
%d有符号十进制整数,%06d表示输出的整数显示位数,不足的地方用0补全
%f浮点数,%.02f表示小数点后只显示两位
%%输出%

print(“格式化字符串” %变量1)
print(“格式化字符串” %(变量1,变量2…))

name = "小明"
print("我叫%s,请多多关照!" % name)
# %前后最好都有一个空格

student_no = 1
print("我的学号是%05d" % student_no)  # 学号是00001
# 如果不到5位,则左边用0补齐,如果超过5位,则该是多少就是多少
print("我的学号是%5d" % student_no)  # 学号是    1

price = 5.5
weight = 5
money = price * weight
print("苹果单价%f元/斤,购买了%f斤,总价%f元" % (price, weight, money))
# 默认%f是6位小数
# 苹果单价5.500000元/斤,购买了5.000000斤,总价27.500000元
print("苹果单价%.2f元/斤,购买了%.3f斤,总价%.4f元" % (price, weight, money))
# 苹果单价5.50元/斤,购买了5.000斤,总价27.5000元

# 定义一个小数scale,输出 数据比例是10.00%
scale = 0.25 * 100
print("数据比例是%f%%" % scale)
# 数据比例是25.000000%
print("数据比例是%.2f%%" % scale)
# 数据比例是25.00%
scale1 = 0.25
print("数据比例是%.2f%%" % scale1 * 10)
# 会输出10个“数据比例是0.25%”
print("数据比例是%.2f%%" % (scale1 * 100))
# 数据比例是25.00%

3.变量的命名
(1)标识符
标识符由字母、下划线和数字组成。
标识符不能以数字开头。
标识符不能与关键字重名。
(2)关键字
关键字是在python内部已经使用的标识符,关键字具有特殊的功能和含义。

            IPython中查看python关键字
In [1]: import keyword
//回车后就会把keyword这个工具包加载到内存
In [2]: print(keyword.kwlist)

import关键字可以导入一个工具包,这里keyword就是一个工具包的名字。

(3)驼峰命名法(python中其实并不常用)
小驼峰式命名法:第一个单词以小写字母开始,后续单词的首字母大写。如firstName
大驼峰式命名法:每一个单词的首字母都采用大写字母。如FirstName

(4)在python中,如果变量名需要有两个或多个单词组成时:每个单词都使用小写字母;单词和单词之间使用下划线连接

4.python中的标识符是区分大小写的。

二、判断(if)语句
1.if语句

if 要判断的条件:
	条件成立时要做的事情  # 这里是tab,不过建议使用4个空格

在python开发中,tab和空格不要混用。

age = 12
if age >= 18:
    print("进网吧happy")

    print("这是满足条件执行的第二个语句")

print("这句代码无论条件是否满足都会执行")

if语句以及缩进部分是一个完整的代码块
if语句后,只要是前面有4个空格,那么都是条件成立时要做的事情。

比较(关系运算符)
相等==
不相等!=
大于>
小于<
大于等于>=
小于等于<=
Python2.x中判断不等于还可以使用<>运算符。(也可以使用!=)

2.else处理条件不满足的情况

if 要判断的条件:
	条件成立时要做的事情
	.....
else:
	条件不成立时要做的事情
	.....

if 和 else语句以及各自的缩进部分共同是一个完整的代码块。

ctrl+/快速增加减少删除注释

age = int(input("请输入年龄:"))
if age >= 18:
    print("进网吧happy")
else:
    print("回家写作业去")

3.逻辑运算
(1)逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件。
python中的逻辑运算符包括and,or,not三种。

条件1 and 条件2
条件1 or 条件2
not 条件

age = 12
if age >= 0 and age <= 120:
    print("年龄正确")
else:
    print("年龄不正确")
python_score = 40
c_score = 55
if python_score > 60 or c_score > 60:
    print("考试通过")
else:
    print("不通过")
is_employee = False
if not is_employee:
    print("非本公司人员,请勿入内")

4.elif

if 条件1:
	条件1满足执行的代码
	......
elif 条件2:
	条件2满足执行的代码
	......
elif 条件3:
	条件3满足执行的代码
	......
else:
	以上条件都不满足时执行的代码
	......

elif 和 else 都必须和if联合使用,而不能单独使用。
可以将if、else、elif以及各自缩进的代码,看成一个完整的代码块。

holiday = "春节"
if holiday == "春节":
    print("过大年")
elif holiday == "国庆节":
    print("看阅兵")
else:
    print("day day up")
    

python中字符串的比较用双等号。 holiday == “国庆节”

5.if的嵌套

多行共同缩进
选中多行,按tab键,向右缩进;
选中多行,按shift+tab,向左缩进

has_ticket = True
knife_length = 10
if has_ticket:
    print("车票检查通过,准备开始安检")
    if knife_length > 20:
        print("您携带的刀太长了,有%d公分长" % knife_length)
        print("不允许上车")
    else:
        print("安检已通过,祝您旅途愉快")
else:
    print("请先购买车票")

6.随机数的处理
在python中,要使用随机数,首先需要导入随机数的模块-工具包。

import random

导入模块后,可以直接在模块名称后面敲一个 . 然后按tab键,会提示该模块中包含的所有函数。

random.randint(a,b),返回[a,b]之间的整数,包含a和b。

random.randint(12,20)  # 生成的随机数12<=n<=20
random.randint(20,20)  # 结果永远是20
random.randint(20,10)  # 该语句是错误的,下限必须小于上限

注意:在导入工具包的时候,应该将导入的语句放在文件的顶部。因为这样可以方便下方的代码,在任何需要的时候使用工具包中的工具。

石头剪刀布

# 导入随机工具包
import random
# 玩家出拳
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3)"))
# 电脑出拳
computer = random.randint(1, 3)
print("玩家选择的拳头是%d - 电脑出的拳是%d" % (player, computer))
if ((player == 1 and computer == 2)
        or (player == 2 and computer == 3)
        or (player == 3 and computer == 1)):

    print("玩家胜利")
elif player == computer:
    print("平局")
else:
    print("电脑胜利")

三、循环
1.程序的三大流程
顺序
分支
循环

2.while循环

初始条件设置-通常是重复执行的 计数器
while 条件(判断计数器是否达到目标次数):
	条件满足时做的事情.......
	处理条件(计数器+1)

while语句以及缩进部分是一个完整的代码块。

i = 1
while i <= 5:
    print("hello")
    i = i + 1
# 输出5个hello

死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止。

3.赋值运算符
=,+=,-=,*=,/=,//=,%=,**=
注意:赋值运算符中间不能使用空格。

4.程序计数法-从0开始
除非需求的特殊要求,否则循环的计数都从0开始。

5.循环计算

# 实现0~100之间的累计求和
result = 0
i = 0
while i <= 100:
    sum += i
    i += 1
print(result)
# 实现0~100之间所有的偶数求和
result = 0
i = 0
while i <= 100:
    if i % 2 == 0:
        print(i)
        result += i
    i += 1
print(result)

6.break和continue关键字
(1)break和continue是专门在循环中使用的关键字。
break-某一条件满足时,退出循环,不再执行后续重复的代码;
continue-某一条件满足时,跳过这次循环,继续开始下一次循环(跳到下一次的条件判断);
(2)break

i = 0
while i < 10:
    if i == 3:
        break
    print(i)
    i += 1
# 只输出了0 1 2

(3)continue

死循环

i = 0
while i < 10:
    if i == 3:
        continue
    print(i)
    i += 1

在循环中,如果使用continue这个关键字,在使用关键字之前,需要确认循环的计数是否修改,否则可能会导致死循环。

i = 0
while i < 10:
    if i == 3:
        i += 1
        continue
    print(i)
    i += 1
# 输出了从0到9(没有3)

7.循环嵌套

python中代码的缩进就表示了代码的所属关系

# 在控制台连续输出五行*,每一行星号的数量依次递增
i = 1
while i <= 5:
    print("*" * i)
    i += 1

【扩展】:print函数的结尾处理
默认情况下,print函数输出内容之后,会自动在内容末尾增加换行。
如果不希望增加换行,可以在print函数输出内容的后面增加 , end=""
其中""中间可以指定print函数输出内容之后,继续希望显示的内容。

end=""表示向控制台输出内容结束之后,不会换行。

# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
print("")
print("*", end="---")
print("*")
# 输出为 *---*
# *
# **
# ***
# ****
# *****
# 使用循环嵌套在控制台连续输出五行*,每一行星号的数量依次递增
row = 1
while row <= 5:
    col = 1
    while col <= row:
        print("*", end="")
        col += 1
    print("")
    row += 1
# 使用循环嵌套在控制台输出九九乘法表
row = 1
while row <= 9:
    col = 1
    while col <= row:
        print("%d * %d =%2d" % (col, row, row*col), end="   ")
        col += 1
    print("")
    row += 1
# 1 * 1 = 1   
# 1 * 2 = 2   2 * 2 = 4   
# 1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
# 1 * 4 = 4   2 * 4 = 8   3 * 4 =12   4 * 4 =16   
# 1 * 5 = 5   2 * 5 =10   3 * 5 =15   4 * 5 =20   5 * 5 =25   
# 1 * 6 = 6   2 * 6 =12   3 * 6 =18   4 * 6 =24   5 * 6 =30   6 * 6 =36   
# 1 * 7 = 7   2 * 7 =14   3 * 7 =21   4 * 7 =28   5 * 7 =35   6 * 7 =42   7 * 7 =49   
# 1 * 8 = 8   2 * 8 =16   3 * 8 =24   4 * 8 =32   5 * 8 =40   6 * 8 =48   7 * 8 =56   8 * 8 =64   
# 1 * 9 = 9   2 * 9 =18   3 * 9 =27   4 * 9 =36   5 * 9 =45   6 * 9 =54   7 * 9 =63   8 * 9 =72   9 * 9 =81

8.字符串中的转义字符
\t在控制台输出一个制表符,协助在输出文本时垂直方向保持对其。
\n在控制台输出一个换行符。
制表符的功能是在不使用表格的情况下在垂直方向按列对齐文本。

转义字符描述
\反斜杠符号
单引号
"双引号
\n换行
\t横向制表符
\r回车
# \t协助在输出文本时 垂直方向保持对齐
print("1 2 3")
print("10 20 30")
# 1 2 3
# 10 20 30
print("1\t2\t3")
print("10\t20\t30")
# 1	   2	3
# 10   20	30
# 使用\t进行对齐
print("%d * %d =%2d" % (col, row, row*col), end="\t")

四、函数
1.函数:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。

函数的使用:
定义函数-封装独立的功能;
调用函数-享受封装的成果;

函数的作用:在开发程序时,使用函数可以提高编写的效率以及代码的重用。

示例
hm_01_九九乘法表.py文件中是刚刚编写的打印九九乘法表的代码,在此程序的最上方增加:

# 函数定义
def multiple_table():

并将下面所有的代码通过tab键向右缩进4个空格,这样就完成了函数的定义。
在另一个hm_02_函数调用.py文件中,导包后进行函数调用:

import hm_05_循环
hm_05_循环.multiple_table()

然后在run “hm_02_函数调用”,可以看到控制台输出了九九乘法表。

2.函数的定义

def 函数名():
	函数封装的代码
	.........

def-define。
函数名称应该能够表达函数封装代码的功能,方便后续的调用。
函数名称的命名应该符合标识符的命名规则。(字母、下划线、数字组成;不能由数字开头)

3.函数调用
通过函数名()即可完成调用。
函数定义好后,如果不主动调用函数,函数是不会主动执行的。

# 函数的定义
def say_hello():
    print("hello 1")
    print("hello 2")
# 函数定义之后,最好有两个空行再开始下一句代码


# 函数的调用
say_hello()

不能将函数调用放在函数定义的上方。
在使用函数名调用函数之前,必须要保证python已经知道函数的存在。否则控制台会提示NameError:name ‘xxxx’ is not defined。

PyCharm的调试工具
F8 Step Over可以单步执行代码,会把函数调用看做是一行代码直接执行。
F7 Step Into可以单步执行代码,如果是函数,会进入函数内部,单步执行函数内部的代码。

4.函数的文档注释
开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号,连续的三对引号之间编写对函数的说明文字。

在函数调用位置,使用快捷键CTRL+Q可以查看函数的说明信息。

因为函数体相对比较独立,函数定义的上方,应该和其它代码(包括注释)保留两个空行。

def say_hello():
    """打招呼"""
    print("hello 1")
    print("hello 2")

5.函数的参数
在函数名的后面的小括号内部填写参数,多个参数之间使用逗号分隔。

def sum_2_num(num1, num2):
	"""对两个数字的求和"""
    result = num1 + num2
    print("%d + %d = %d" % (num1, num2, result))


sum_2_num(20, 30)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值