Python 基础学习

一:变量定义规则 以及 输出方式

python 中 定义变量不需要写数据类型

age = 22
name = "chenruhan"
money = 100
print("my name is %s ,i am %d years old" % (name,age))
age = 22
name = "chenruhan"
money = 100
print("my name is {} ,i am {} years old".format(name,age))

二:type可以检验变量的类型

age = "20"
print(age,type(age))

三:注释 (单行注释 多行注释)

单行注释 #

boolvalue = True # False 单行注释

多行注释 三个双引号 或 三个单引号 

"""
1.Number 整数 + 小数
2.string 字符串 '' ""
3.Boolean True False
"""

四:引用 python 内置模块 

import keyword # 引用python 内置模块

五:列表 

import keyword # 引用python 内置模块
# list 列表 []
print(keyword.kwlist)

六:python中的 与 或 非

C/C++   : && || !

python   : and or not

七:python没有常量

CLASSNAME = "omo2112"
print(CLASSNAME)
CLASSNAME = "omo2203"
print(CLASSNAME)

python中 看到全大写 如上CLASSNAME 就默认其为常量【业内规定】 ,意味其不能改变

八:python数据类型

Python3 中有六个标准的数据类型:Number(数字)、String(字符串)、Boolean(布尔)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。
•不可变数据(4个):Number(数字)、String(字符串)、Tuple(元组)、Boolean(布尔)
•可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。
Python3支持三种不同的数值类型:
•整型(int)、浮点型(float)、复数(complex)。

九:除法 与 地板除

除法 有保留小数部分

num = 10/3
print(num)

地板除 不保留小数部分

num = 10//3
print(num)

十:{ }  format 参数列表 顺序设置 在大括号中写入数字即可

age = 22
name = "chenruhan"
money = 100
print("my name is {1} ,i am {0} years old".format(name,age))

十一:字符串拼接

str1 = "abc"
str2 = "qwe"
print(str1+str2)

空格也是字符串,需要注意 

十二:强制转换 

age = "20"
print(age,type(age))
res = int(age) #强制转换
print(res,type(res))

age = "20"
print(age,type(age))
res = float(age) #强制转换
print(res,type(res))

十三:列表 定义 和 使用 【成员运算符】 

列表查找

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
print('李四' in stuList)
print('赵六' in stuList)

字符串查找 

# 字符串 可迭代性
code = "apple"
print('a' in code)

 十四:for循环遍历

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
# for 元素 in list
for item in stuList:
    print(item)

if的使用

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
# for 元素 in list
for item in stuList:
    if '张三' == item:
        print("找到了",item)
        break

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
# for 元素 in list
flag = False
for item in stuList:
    if '涵' == item:
        print("找到了",item)
        flag = True
        break
if flag is not True:
    print("没找到")

十五:for 后 可以跟上 else

没找到

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
# for 元素 in list
for item in stuList:
    if '涵' == item:
        print("找到了",item)
        flag = True
        break
else:  #如果循环自然终结,那么就会执行
    print("没找到")

找到

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
# for 元素 in list
for item in stuList:
    if '李四' == item:
        print("找到了",item)
        flag = True
        break
else:  #如果循环自然终结,那么就会执行
    print("没找到")

十六:列表可直接赋值

列表索引

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
print(stuList[0])

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
stuList1 = stuList
print(stuList1,type(stuList1))

浅拷贝 如下 

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
stuList1 = stuList
stuList1[0] = "chenruhan"
print(stuList,type(stuList))
print(stuList1,type(stuList1))

自己开辟内存空间 深拷贝

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']

stuList2 = stuList[:]  #进行元素的全部赋值
stuList2[0] = "linximeng"
print(stuList , type(stuList))
print(stuList2 , type(stuList2))

十七:身份运算符

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
stuList1 = stuList
print(stuList1 is stuList)  #身份运算符

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
stuList2 = stuList[:]  # 拷贝一个 原版不变
print(stuList2 is stuList)  #身份运算符

十八:输入输出

输出自带换行 可以设置end不换行

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
stuList1 = stuList  # 拷贝一个 原版不变
stuList2 = stuList[:]  # 拷贝一个 原版不变
print(stuList1 is stuList,end = '\t')  #身份运算符
print(stuList2 is stuList)  #身份运算符

input得到的都是字符串

name = input("请输入用户名")
print(name , type(name))

十九:登录注册

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
pwdList = ['123','345','567']

name = input("请输入用户名")
print(name , type(name))
pwd = input("请输入密码")
for item in stuList:
    if name == item:
        print("用户名存在,该用户是",item)
        break
else:
    print("用户名不存在")

根据下标获取元素 

# 列表的定义 元素 , 索引  0
stuList = ['张三','李四','王五']
pwdList = ['123','345','567']

name = input("请输入用户名")
print(name , type(name))
pwd = input("请输入密码")
for i in range(3):   #区间 [0,n-1]
    if stuList[i] == name:
        if pwd in pwdList:
            print("登录成功")
        else:
            print("登录失败")
        break
else:
    print("没找到")

二十:while 使用

def demo1():
    print(123)

def demo2():
    print(456)

def demo3():
    print(789)

while 1:
    print("1.登录\n2.注册\n3.退出")
    option = int(input("请输入功能号:")) #input输入进来的是字符串
    if option == 1:
        demo1()
        print("登录")
    elif option == 2:
        demo2()
        print("注册")
    elif option == 3:
        # demo3()
        # print("退出")
        break
    else:
        print("无此选项")

小练习

1.输入五门学科的成绩(整数),定义一个函数计算出总分和平均分,平均保留一位小数

%.1f   %0.1f  %1f

def test1():
    str1 = input("输入五门学科的成绩(整数)")
    print(str1,type(str1))
    numList = str1.split(" ")   # 字符串分割 list
    print(numList,type(numList))
    list1 = []
    for item in numList:
        list1.append(int(item))  # append 列表添加元素
    print(list1,type(list1))
    print("总分是:%d" % sum(list1))        # sum求和
    print("学科数量是:%d" % len(list1))        # len获取长度
    print("平均分是:%.1f" % (sum(list1)/len(list1)))


test1()

  

2.定义一个函数,传入一个数字n(不要大于10),求1+2!+3!+…+n!的和

def test1():
    num = input("请输入一个数")
    score = 1
    num2 = 0
    for i in range(1,int(num)+1):
        score *= i
        num2 += score
    print("阶乘和:",num2)


test1()

3.输入一个字符,如它是小写字母,则把它循环转换成自身的后4个字母的大写形式,如是大写字母,则把它循环转换成自身的后4个字母的小写形式。其他形式的不转换。并且把结果输出。如:a字母结果输出E,W输出结果a 

def test1():
    ch = input("输入一个字符")
    # a-v w-z A-V W-Z
    if 'a' <= ch <= 'v':
        #字符转ASCII
        num = ord(ch)    # 97 65
        ch = chr(num - 32 + 4)
        print(ch)
    elif 'w' <= ch <= 'z':  # w -- W -- A
        num = ord(ch)    # 97 65
        ch = chr(num - 32 - 22)
        print(ch)
    elif 'A' <= ch <= 'V':
        num = ord(ch)    # 97 65
        ch = chr(num + 32 + 4)
        print(ch)
    elif 'W' <= ch <= 'Z':
        num = ord(ch)  # 97 65
        ch = chr(num + 32 - 22)
        print(ch)
    else:
        print("请输入英文字符")


test1()

4.输出1~100之间的偶数,5个数字一行输出

def test1():
    for i in range(1,101):
        if i % 2 == 0:
            print(i,end = '\t')
            if i % 10 == 0:
                print()


test1()

 

5.判断(1,n]中所有质数的和是否是质数  n=5  2,3,5   10 

def isZhiShu(num):
    if num == 1:
        return  False
    if num == 2:
        return  True
    for i in range(2,num):
        if num % i == 0:
            return  False
    else:
        return  True


def test1():
    num2 = 0
    num = int(input("请输入一个数字"))
    for i in range(2,num+1):
        if isZhiShu(i):
            num2 += i
    print("质数和是:",num2)
    if isZhiShu(num2):
        print("是质数")
    else:
        print("不是质数")


test1()

 

6.数字炸弹:数字范围[0,100].用户输入一个100以内的数,系统生成随机数,用户有3次机会,每猜一次,系统会给出猜大了或是猜小了在区间[min,max]的提示,如果与系统随机数相同,则用户赢了,否则就是电脑赢了。 

import random

def test1():
    result = random.randint(1,100) #[1,100]
    i = 1 #次数
    minNum = 1
    maxNum = 100
    while i < 4:   #一共三次机会
        num = int(input("输入猜测数字:"))
        if minNum <= num <= maxNum:
            i = i + 1
            if num < result:
                minNum = num + 1
                print("猜小了,炸弹范围现在是{}~{}".format(minNum, maxNum))
            elif num == result:
                print("猜中了,数字炸弹是{}".format(result))
                break
            else:
                maxNum = num - 1
                print("猜大了,炸弹范围现在是{}~{}".format(minNum,maxNum))
        else:
            print("输入范围有误,请重新输入{}~{}之间的数字".format(minNum,maxNum))
    else:
        print("没有猜中,数字炸弹为{}".format(result))


test1()

 


版权声明:本文为m0_56051805原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。