python练习

2020-04-09  本文已影响0人  彬彬刘

[TOC]

认识python


python基础知识:注释、变量、变量类型、标示符、关键字

str1 = 'hello'
str2 = 'python'
print(str1+str2)
#hellopython
a = 1
print(type(a))
#!/usr/bin/python
# coding=utf-8
# 第一个注释
print "Hello, Python!"
# s 是变量 
s = 10
print(s)

指定python运行目录

A、test     B、python     C、2name     D、num2          E、if
F、!hello    G、print     H、itcast     I、omg         J、abc-def
K、temp     L、else         M、TEST         N、Options

CEFGJL


python基础知识:输入、输出、运算符、数据类型转换

# 尝试所有运算符
# 算数运算符
print(1+2)
print(1-2)
print(1*2)
print(1/2)
print(3%2)
print(5//3)
print(3**2)
# 赋值运算符
a = 1
print(a)
# 复合赋值运算符
# a += 1
# a -= 1
a *= 2
print(a)
# 上面算数运算符都能跟=号组合
a = '123'
print(type(a))
b = 123
print(type(b))
a = int(a)
b = str(b)
print(type(a))
print(type(b))
# 定义变量
a = 1
b = 2
c = 'hello'
# 格式化输出
print('a=%d,b=%d,c=%s'%(a,b,c))
# 名片小程序
name = input("请输入您的姓名:")
gender = input("请输入您的性别:")
age = input("请输入您的年龄:")
company = input("请输入您的工作单位:")
moble = input("请输入您的手机号:")
email = input("请输入您的邮箱:")

print('%s\t%s\t%s岁\n公司:%s\n手机:%s\nEmail:%s'%(name,gender,age,company,moble,email))
# coding=utf-8
# 定义字符串变量temp1
temp1 = "hello python' ------>   引号
# 接收用户的输入
temp2 = input("请输入:")
# 定义数字变量temp3
temp3 = 333
# 定义字符串变量temp4
temp4 = "333"
# 求和
temp5 = temp3 + temp4  ----->   int类型 与 str类型相加

if temp5 == 666      ----->    缺少冒号:
    print("%s + %s = %s, 挺溜啊"%(temp3,temp4,temp5))
if temp5 != 666:
print("一点儿也bu溜")     ------>    缩进不对,if语句下的代码块不能为空
print("您刚刚输入的是:%d"%temp2)     ------>     temp2是字符串类型

提示:

  1. input输入的数据,是字符串类型
  2. 不同类型的变量不能进行运算
  3. == 符号 判断两端的值是否相等
  4. != 符号 判断两边的值是否不相等
  5. if 后面的的代码需要缩进
# coding=utf-8
# 定义字符串变量temp1
temp1 = 'hello python' #------>   引号
# 接收用户的输入
temp2 = input("请输入:")
# 定义数字变量temp3
temp3 = 333
# 定义字符串变量temp4
temp4 = "333"
# 求和
temp5 = temp3 + int(temp4) # ----->   int类型 与 str类型相加

if temp5 == 666: #     ----->    缺少冒号:
    print("%s + %s = %s, 挺溜啊"%(temp3,temp4,temp5))
elif temp5 != 666:
    print("一点儿也bu溜") #    ------>    缩进不对,if语句下的代码块不能为空
    print("您刚刚输入的是:%s"%temp2)  #   ------>     temp2是字符串类型

条件语句

if 条件判断:
  执行动作
elif 条件判断:
  执行动作
else :
  执行动作
  1. 编写一个counter.py程序
  2. 在counter.py中指定使用./counter.py运行时,使用的是python3
  3. 使用注释开启中文支持
  4. 设计程序分三次获取3个数字,并赋值给变量
  5. 将3次输入的数据转换为数字类型,然后把相加后的值赋值给变量sum
  6. 如果sum>100000, 则输出"您输入的三个数的和忒大了"
  7. 如果sum>10000, 则输出"您输入的三个数的和挺大"
  8. 如果sum>1000, 则输出"您输入的三个数的和有点大"
  9. 如果sum>100, 则输出"您输入的三个数的和不算大"
  10. 如果sum<=100, 则输出"您输入的三个数的和忒小了"
  11. 要求每次输入最终都只打印一条语句,且该语句符合你的预期,如我分别输入100,200,300,最后只会打印"您输入的三个数的和不算大",而不会打印其他情况

提示:

  1. 注意安排好判断语句的顺序,否则会得到超出预期的结果
  2. which python3 可以查看python3程序所在位置
# 4. 设计程序分三次获取3个数字,并赋值给变量
num1 = input('请输入3个数字(1/3):')
num2 = input('请输入3个数字(2/3):')
num3 = input('请输入3个数字(3/3):')
# 5. 将3次输入的数据转换为数字类型,然后把相加后的值赋值给变量sum
sum = int(num1) + int(num2) + int(num3)
# 6. 如果sum>100000, 则输出"您输入的三个数的和忒大了"
if  sum>100000:
    print('您输入的三个数的和忒大了')
# 7. 如果sum>10000, 则输出"您输入的三个数的和挺大"
elif sum>10000:
    print('您输入的三个数的和挺大')
# 8. 如果sum>1000, 则输出"您输入的三个数的和有点大"
elif sum>1000:
    print('您输入的三个数的和有点大')
# 9. 如果sum>100, 则输出"您输入的三个数的和不算大"
elif sum>100:
    print('您输入的三个数的和不算大')
# 10. 如果sum<=100, 则输出"您输入的三个数的和忒小了"
else :
    print('您输入的三个数的和忒小了')
# 11. 要求每次输入最终都只打印一条语句,且该语句符合你的预期,如我分别输入100,200,300,最后只会打印"您输入的三个数的和不算大",而不会打印其他情况

image.png
a = input('请输入1-7中的一个数字:')
if int(a)<=5:
    print('工作日')
elif int(a)<=7:
    print('周末')
else:
    print('错误')

循环语句

完整的for循环语法是什么?

a = 0
sum = 0
while a<100:
    a += 1
    sum = sum + a
print(sum)
a = 0
while a<5:
    a += 1
    print('* '*a)
a = 5
while a>0:
    print('* '*a)
    a -= 1
# 输入猜拳选择
a = int(input('请出拳:石头(1),剪刀(2),布(3)'))
if a == 1:
    print('你选择出:石头')
elif a == 2:
    print('你选择出:剪刀')
elif a == 3:
    print('你选择出:布')
# 程序随机出拳
b = random.randint(1, 3)
if b == 1:
    print('你遇到了:石头')
elif b == 2:
    print('你遇到了:剪刀')
elif b == 1:
    print('你遇到了:布')
#产生结果
if (a == 1 and b == 2) or (a == 2 and b == 3) or (a == 3 and b == 1):
    print('你获得了胜利')
elif a == b:
    print('平局')
else:
    print('你输了,再来一局吧!')
# 观察九九乘法表,列号*行号
row = 1
while row <= 9:
    col = 1
    while col <= row:
        print('%d*%d=%d' % (col, row, col * row), end='\t')
        col += 1
    print()
    row += 1

高级变量类型列表、元组

for i in nums:
  print(i)
a = 0
while a<=len(nums):
  print(nums[a])
  a+=1

函数

def func():
    a = 1
    sum = 0
    while a<100:
        if a%2 == 0:
            sum+=a
        a+=1
    return sum
print(func())
def func(a,b):
    sum = 0
    for n in range(int(a),int(b)+1):
        sum += n
    return sum

print(func(1,5))

定义:
全局变量定义在全局空间,函数外部
局部变量定义在函数内部
引用:
全局变量可以被所有的函数使用
局部变量只能在该函数内使用,其它函数不能访问
修改:
局部变量在函数内部修改不受限制
全局变量在函数内部修改受限制

def func(n):
    a = 0
    sum = 0
    while a<=n:
        sum += a
        a+=1
    return sum
print(func(100))
def func(username,password):
    if username == 'python' and password== '123456789':
        return '欢迎'
    else:
        return '账号或密码错误'
print(func('python','123456789'))
def func(n):
    if n>0:
        if n%2==0:
            return'n是偶数'
        else:
            return 'n是奇数'
    else:
        return '请输入大于0的整数'
print(func(-1))
def main():
    list_1 = []
    for i in range(1,201):
        if i%3==0 or str(i).find('3')>=0: # find(),包含的话,返回第一次出现的位置,没有的话为负数
            list_1.append(i)
    return list_1
print(main())
def main():
    list = []  # 储存所有学生信息的列表
    i = 1
    while i <= 5:
        # 获取指定的输入信息
        id = input('请输入学生ID:')
        name = input('请输入学生姓名:')
        age = int(input('请输入学生年龄:'))
        # 将输入信息储存在字典中,循环时会覆盖新的输入
        stu = {'id': id, 'name': name, 'age': age}
        # 将字典数据添加到列表中
        list.append(stu)
        i += 1
    return list

print(main())
def main(*abc):

    print('共有%s个参数,其中:' % len(abc))
    for i in abc:
        #print(i)
        print('参数%s类型为:%s' % (i, type(i)))

main(1,2,'ren')
  def max(a,b):
    if a>=b:
        return a
    else:
        return b

print(max(3,1))
  def min(a,b):
    if a<=b:
        return a
    else:
        return b

print(max(3,1))
# 无参数计算1-100的累加
def func1():
    i = 1
    sum = 0
    while i<=100:
        sum += i
        i += 1
    return sum
#位置参数,计算参数-100的累加
def func2(n):
    i = n
    sum = 0
    while i <=100:
        sum += i
        i += 1
    return sum
# 默认参数,计算n-m的累加,如不传参数则默认计算0-100的累加
def func3(n=1, m=100):
    i = n
    sum = 0
    while i <= m:
        sum += i
        i += 1
    return sum

def findall(a,b):
    w = []
    # 初始化每次find返回坐标在原字符串的的位置
    m = 0
    # 当find能返回坐标时就继续循环,不能返回坐标时返回-1
    while a.find(b) >= 0:
        index = a.find(b) #记录当前字符串的find坐标
        if len(w)>0: # 第一次find返回坐标时不需要累加len(b)
            m = m + index +len(b) # 累计历次find的坐标
        else:
            m = m + index # 第一次find返回坐标时不需要累加len(b)
        w.append(m) # 把累计坐标添加进列表
        a = a[index+len(b):] # find返回一次坐标就截掉坐标+b字符串,剩下部分才能再利用find返回坐标
    return tuple(w) # 返回元组结果
print(findall("helloworldhellopythonhelloc++hellojava",'hello'))

文件操作

  1. 创建gailun.txt文件
  2. 打开文件在gailun.txt中写入"德玛西亚!人在塔在!"
  3. 将输入的数据格式化输出到终端上
  4. 在文件夹中创建gailun副本.txt文件
  5. 将gailun.txt文件中的数据写入gailun副本.txt文件中
  6. 打开文件,查看文件中是否有内容
# 创建gailun.txt文件
with open('gailun.txt','w+',encoding='utf-8') as f:
    # 打开文件在gailun.txt中写入"德玛西亚!人在塔在!"
    f.write('德玛西亚!人在塔在!')
    f.seek(0,0) # offset ,偏移量,whence:可选,默认值为 0。0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
    content = f.read()
    # 将输入的数据格式化输出到终端上
    print('文件内容是:%s'%content)

# 在文件夹中创建gailun副本.txt文件
with open('gailun.txt','r',encoding='utf-8') as f_:
    # 将gailun.txt文件中的数据写入gailun副本.txt文件中
    f_.seek(0,0)
    content = f_.read()
    print(content)
    new_file = open('gailun副本.txt','w+',encoding='utf-8')
    new_file.write(content)
    new_file.close()
# 打开文件,查看文件中是否有内容
上一篇 下一篇

猜你喜欢

热点阅读