Python-基础语法

时间:2024-02-20 16:39:47

#----------------------------------------------
print("hello")
print("world")
print("你好")
#输出不换行
print("hello,",end=" ")
print("world")
#变量
#普通赋值
name="张三"
print(name)
print("name")
name="李四"
print(name)

#链式赋值
a=b=c=1
print(a,b,c)

#序列解包赋值
a,b,c,d=5,6,7,8
print(a,b,c,d)

a=4
print(a)
_a1=6
a_1=7
A=5
print(a,A)
age=18
sex="男"

#假设变量 a = 3, b = 4 如何将a,b两个变量的值互换
#方法一
a=3
b=4
c=a
a=b
b=c
print(a,b)

#方法二
a=3
b=4
a,b=b,a
print(a,b)

#输入:input作用是接收从键盘中输入的数据
#name=input("请输入您的名字:")
print("请输入名字:")
name=input()
print("您的名字是:",name)

#变量的数据类型
a=4
b=1.5
c="89"
print(type(a))
print(type(b))
print(type(c))
#数据类型的转换
#整数转换为小数
floata=float(a)
print(type(floata),floata)
#小数转换为整数
intb=int(b)
print(type(intb),intb)
#字符串转换为整数?(字符不能转换为数字)
intc=int(c)
print(type(intc),intc)

#1、让用户从键盘输入两个数字,然后计算出他们的和
a=int(input("请输入一个数:"))
b=int(input("请再输入一个数:"))
print("两数之和为:",a+b)


#2、你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

a=float(input("请输入一个数:"))
#print("四舍五入之后为:",int(a+0.5))
print("四舍五入之后为:",round(a))

#字符串拼接
str1="aaaa"
str2="bbb"
str3=5
print(str1+str2)
print(str1+str(str3))
print(str1,str3)
#换行符\n
print(str1+"\n"+str2)
#缩进\t
print(str1+"\t"+str2)
#转义字符\
print(\'let\\'s go!\')
print("C:\\now\\to")
print(r"C:\now\to")

#字符串的索引
str1="heelpp, wrjkjkd"
print(str1[0])
print(str1[1])
print(str1[6])
print(str1[7])
print(str1[8])
#print(str1[30])
e="p88" not in str1
print(type(e),e)
#字符串反转输出
print(str1[::-1])

print(5-3)
print(5*3)
print("hello"*6)
#取结果
print(10/3)
#取整,或者商
print(10//3)
#取余数
print(10%3)
#幂运算
print(2**4)

#列表
list1=[1,2,"apple",[1,5,6],"aa"]
print(type(list1))
print(list1)
#访问列表元素
print(list1[3])
print(list1[4])
#统计列表长度
print(len(list1))
#向列表增加元素
list1.append("张三")
print(list1)
#修改列表元素
list1[1]=10
print(list1)
#删除列表元素
del list1[0]
print(list1)
#del list1

#列表切片
print(list1[0:2])
print(list1[1:4])
print(list1[:4])
print(list1[2:])
print(list1[:])

print(5 in list1)
print([1, 5, 6] in list1)

#元组:元组的内容不可更改
t1=(1,5,6,[1,2],"apple")
print(type(t1),t1)
t2=(9)
t3=(9,)
print(type(t2),type(t3))
print(t1[3])
print(t1[3:5])

#数据类型:int,float,str,bool,list,tuple
#判断语句:if...elif...elif.....else...
answer=8
guess=int(input("请猜测一个整数:"))
if answer==guess:
print("恭喜你答对了")
else:
print("很遗憾猜错了")


#程序优化
answer=8
guess=int(input("请猜测一个整数:"))
if answer==guess:
print("恭喜你答对了")
else:
if answer>guess:
print("小了")
else:
print("大了")


#继续优化:elif...
answer=8
guess=int(input("请猜测一个整数:"))
if answer==guess:
print("恭喜你答对了")
elif answer>guess:
print("小了")
else:
print("大了")

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖

h=float(input("请输入您的身高(M):"))
w=float(input("请输入您的体重(KG):"))
bmi=w/h**2
if bmi<18.5:
print("过轻")
elif 18.5<=bmi<25:
print("正常")
elif 25<=bmi<28:
print("过重")
elif 28<=bmi<32:
print("肥胖")
else:
print("严重肥胖")

#如果今天是周末,天气晴朗,则去户外活动,如果天气不好,则室内活动,如果不是周末,就去上班
today="周末"
weather="晴朗"
if today=="周末":
if weather=="晴朗":
print("户外活动")
else:
print("室内活动")
else:
print("上班")

#while循环:while....条件为真,则执行循环语句
#循环输出10次欢迎你
#循环变量
times=1
while times<11:
print("欢迎你")
#times=times+1
times+=1

#循环输出1-100
i=1
while i<=100:
print(i,end=" ")
i+=1

#break:遇到break就跳出整个循环
#continue:遇到continue就跳出当前循环,继续下一次循环
times=0
while times<3:
answer=8
guess=int(input("请猜测一个整数:"))
if answer==guess:
print("恭喜你答对了")
#break
continue
elif answer>guess:
print("小了")
else:
print("大了")
times+=1

#1)求100以内的奇数之和 99+97+95+93+92+91......1
i=1
sum=0
while i<100:
print(i,end=" ")
sum=sum+i
i=i+2
print(sum)
#2)创建一个包含了100以内奇数的列表
list=[]
i=1
while i<100:
list1.append(i)
i=i+2
print(list1)

#----------------------------------------------

#1)求100以内的奇数之和
i=1
sum=0
while i<100:
#print(i,end=" ")
sum=sum+i
i=i+2
print(sum)

#2)创建一个包含了100以内奇数的列表
list1=[]
i=1
while i<100:
#print(i,end=" ")
list1.append(i)
i=i+2
print(list1)

#3)用代码实现:一个程序读入3个数,
#把这三个数值看作一个三角形的3条边的长度值。
#这个程序要打印出信息,说明这个三角形是普通的、是等腰的、还是等边的还是非三角形。
a=float(input("请输入三角形的第一边:"))
b=float(input("请输入三角形的第二边:"))
c=float(input("请输入三角形的第三边:"))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
if a==b==c:
print("这是等边三角形")
elif a==b or a==c or b==c:
print("这是等腰三角形")
else:
print("这是普通三角形")
else:
print("这是非三角形")

#for循环遍历不规则列表
for i in [1,5,6,"a",10]:
print(i)

#for循环遍历字符串
for i in \'helloworld\':
print(i)

#for循环遍历规则列表
for i in range(1,100):
print(i,end=" ")

for i in range(100):
print(i,end=" ")

for i in range(1,100,2):
print(i,end=" ")

#用for循环求1-100之和
sum=0
for i in range(1,101):
sum=sum+i
print(sum)

#嵌套循环:外循环执行一次,内循环执行一圈
for i in range(1,5):
#print("++++++++>",i)
for j in range(1,4):
print("++++++++>",i)
print("********>",j)


for i in range(1,4):
for j in range(1,6):
print("*",end="")
print()


#九九乘法表
for i in range(1,10):
for j in range(1,i+1):
#print(j,"*",i,"=",j*i,end=" ")
#格式化输出:%d表示整数,%f表示小数,%s表示字符串
print("%d*%d=%d" %(j,i,j*i),end=" ")
print()

#我的名字叫张三,我今年8岁,我的压岁钱是200.5元
name="张三"
age=8
money=200.5
print("我的名字叫",name,",我今年",age,"岁,","我的压岁钱是",money,"元")
print("我的名字叫%s,我今年%d岁,我的压岁钱是%0.1f元" %(name,age,money))

#排序
li1=[5,6,8,4,3,1]
li1.sort()
print(li1)


#字典
d1={"苹果":"apple","梨":"pear","香蕉":"banana","苹果1":"apple"}
print(type(d1),d1)
print("香蕉的英文是:",d1["香蕉"])
#修改键值
d1["苹果1"]="apple1"
print(d1)
#获取字典的所有键keys()
for i in d1.keys():
print(i,end=" ")
#print(d1.keys())
print()
#获取字典的所有值values()
for i in d1.values():
print(i,end=" ")

print()
#获取字典的所有元素items()
for i in d1.items():
print(i,end=" ")

print()
#获取字典的键值,不报错get()
print(d1.get("香蕉55"))

#判断键是否存在字典
print("苹果" in d1)

#函数
#1.封装一个没有参数,没有返回值的函数
def hello():
print("你好,欢迎你")

#函数调用
hello()

#2.封装一个有参数,没有返回值的函数
def h1(name):
print("%s,你好,欢迎你" %(name))

#函数调用
h1("张三")

#3.封装一个有多个参数,没有返回值的函数
def h2(name,age):
print("我的名字叫%s,我今年%d岁" %(name,age))

#函数调用
h2(age=18,name="张三")
h2("张三",18)

#4.封装一个参数带默认值,没有返回值的函数
def h3(name,age=18):
print("我的名字叫%s,我今年%d岁" %(name,age))

#函数调用
h3("张三",19)
h3("张三")

#4.封装一个有参数,有返回值的函数:返回值的作用是方便我们对函数结果进行二次利用
def add(a,b):
return a+b

#调用函数
c=add(3,4)*2
print(c)

#练习:分别创建加法、减法、乘法、除法的函数(计算两个数的运算即可)

def add(a,b):
return a+b

def jianfa(a,b):
return a-b

def chengfa(a,b):
return a*b


def chufa(a,b):
if b==0:
return "除数不能为0"
else:
return a/b


print(chufa(4,2))


#模块
#第一种方法
import time
print(111)
time.sleep(3)
print(222)
print(time.ctime())

#第二种方法
#from time import sleep,ctime
from time import *
print(333)
sleep(3)
print(ctime())

#random模块
from random import choice,randint
list1=[1,5,6,"a","b",8]
print(choice(list1))
a=randint(1,20)
print(a)

#随机生成一个范围1-10的列表,并求和,列表长度为6
from random import choice,randint
list1=[]
sum=0
for i in range(1,7):
a=randint(1,10)
print(a,end=" ")
list1.append(a)
sum=sum+a
print(sum)

from module.calc import *

print(add(3,5))
print(chufa(4,0))

#异常处理:try...except...finally
try:
a=4/1
print(a)
except:
print("程序出错了")
finally:
print("不管程序有没有出错,我必须要输出")


#3)用代码实现:一个程序读入3个数,
#把这三个数值看作一个三角形的3条边的长度值。
#这个程序要打印出信息,说明这个三角形是普通的、是等腰的、还是等边的还是非三角形。
try:
a=float(input("请输入三角形的第一边:"))
b=float(input("请输入三角形的第二边:"))
c=float(input("请输入三角形的第三边:"))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
if a==b==c:
print("这是等边三角形")
elif a==b or a==c or b==c:
print("这是等腰三角形")
else:
print("这是普通三角形")
else:
print("这是非三角形")
except:
print("您输入的数据不合法,应该输入数字")

#类和对象(选择性理解)
#类:抽象概念,人类,动物类,汽车类,水果类
#对象:实体,对象=属性(特征)+方法(行为)
class father():
skin="黄皮肤"
name="张三"
def drive(self):
print("我会开车")

#调用类的属性和方法
#1.创建类的一个对象(类的实例化)
zhangsan=father()
print("我的名字叫%s,我的皮肤是%s" %(zhangsan.name,zhangsan.skin))
zhangsan.drive()

#类的继承
class son(father):
age=3
mouth="大嘴巴"
def jieshao(self,name,money):
print("我的名字叫%s,我今年%d岁,我的压岁钱是%d,我的皮肤是%s" %(name,self.age,money,self.skin))

#创建子类的一个对象
xiaoming=son()
xiaoming.jieshao("小明",200)
xiaoming.drive()

#----------------------------------------------

#冒泡
l=[6,5,4,3,2,1]
for i in range(1,6):
for j in range(0,5):
if l[j]>l[j+1]:
l[j],l[j+1]=l[j+1],l[j]
print(l)

#1,完善冒泡排序
l=[]
n=int(input("请问您要比较几个数?:"))
for i in range(0,n):
a=int(input("请输入列表第%d个数:" %(i+1)))
l.append(a)
print(l)

for i in range(1,n):
for j in range(0,n-1):
if l[j]>l[j+1]:
l[j],l[j+1]=l[j+1],l[j]
print(l)


#2,对列表a=[1,5,5,6,6,8,9,9,10]去重处理
a=[1,5,5,6,6,8,9,9,10]
b=[]
for i in a:
if i not in b:
b.append(i)
print(b)


#import selenium


from selenium import webdriver
from time import *

#获取浏览器驱动(获取浏览器的控制权)
dr=webdriver.Chrome()
#dr=webdriver.Firefox()

#添加隐式等待(提高执行效率)
dr.implicitly_wait(10)

#打开百度首页
dr.get("https://www.baidu.com")
#dr.get("https://www.so.com/haosou.html")


#定位搜素框
#1,id
#searchl=dr.find_element_by_id("input")

#2,name
searchl=dr.find_element_by_name("q")

#操作搜素框,输入内容
#searchl.send_keys("selenium")
searchl.send_keys("时间")


#定位搜索按钮
#3,class定位
#searchButton=dr.find_element_by_class_name("skin-search-button")

#4,tag_name定位 [get_attribute:获取元素的属性值]
searchButtons=dr.find_elements_by_tag_name("input")
for i in searchButtons:
if i.get_attribute("type")=="submit" and\
i.get_attribute("id")=="search-button":
i.click()

#点击搜素按钮
#searchButton.click()

#定位并点击 360导航
dr.find_element_by_link_text("360导航").click()

#定位并点击 新闻
dr.find_element_by_link_text("新闻").click()

#dr.find_element_by_partial_link_text("猪肉价稳了").click()
#用绝对路径定位搜索框并输入内容
dr.find_element_by_xpath("html/body/div/div/div/div/div/form/span/input").send_keys("selenium")

#通过元素属性定位
#dr.find_element_by_xpath("//i*[@suggestwidth=\'501px\']").send_keys("selenium")
dr.find_element_by_xpath("//i*[@suggestwidth=\'501px\'and @autocomplete=\'off\']").send_keys("selenium")

#层级加属性定位
dr.find_element_by_xpath("//span[@id=\'input-container\']/div/input").send_keys("selenium")

#通过css定位元素
#dr.find_element_by_css_selector("#input").send_keys("selenium")

#dr.find_element_by_css_selector("input[suggestwidth=\'501px\']").send_keys("selenium")

#dr.find_element_by_css_selector("div#suggest-align>input").send_keys("selenium")

dr.find_element_by_css_selector("form>span>div>input").send_keys("selenium")

#send_keys 上传图片
dr.find_element_by_css_selector(".soutu-btn").click()
dr.find_element_by_css_selector("input[class=\'upload-pic\']").send_keys(r"F:\图片\2017.jpeg")

# clear 清空
dr.find_element_by_id("kw").send_keys("selenium")
sleep(3)
dr.find_element_by_id("kw").clear()

#text 返回元素的文本信息
text1=dr.find_element_by_link_text("把百度设为主页").text
print(text1)

#text 返回元素的文本信息
gl=dr.find_element_by_link_text("把百度设为主页").get_attribute("id")
print(gl)


#关闭浏览器以及驱动
sleep(8)
dr.quit()


#----------------------------------------------
#自动注册脚本
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import Select

def register(partial_username,n):
for i in range(0,n):

username=partial_username+str(i)
email=username+"@qq.com"
#获取浏览器驱动(获取浏览器的控制权)
dr=webdriver.Chrome()


#打开ecshop首页
dr.get("http://192.168.3.66/ecshop/category.php?id=3")

#注册按钮-路径定位
dr.find_element_by_xpath("html/body/div/div[2]/ul/li/font/a[2]/img").click()

#注册内容
#用户名
dr.find_element_by_name("username").send_keys(username)
#email
dr.find_element_by_name("email").send_keys(email)
#密码
dr.find_element_by_xpath("//input[@id=\'password1\']").send_keys("147258")
#确认密码
dr.find_element_by_xpath("//input[@id=\'conform_password\']").send_keys("147258")
#MSN
dr.find_element_by_xpath("//input[@name=\'extend_field1\']").send_keys("1789554@qq.com")
#QQ
dr.find_element_by_xpath("//input[@name=\'extend_field2\']").send_keys("1789554")
#办公电话
dr.find_element_by_xpath("//input[@name=\'extend_field3\']").send_keys("15466513213")
#家庭电话
dr.find_element_by_xpath("//input[@name=\'extend_field4\']").send_keys("15466513213")
#手机
dr.find_element_by_xpath("//input[@name=\'extend_field5\']").send_keys("15466513213")
#密码提示
#dr.find_element_by_name("sel_question").click()
#dr.find_element_by_css_selector("option[value=\'old_address\']").click()

sq=dr.find_element_by_name("sel_question")
#Select(sq).select_by_index(3)
Select(sq).select_by_value("motto")
#Select(sq).select_by_visible_text("我的座右铭是?")
sleep(3)

#密码问题答案
dr.find_element_by_name("passwd_answer").send_keys("1546852")
#点击注册
dr.find_element_by_name("Submit").submit()

sleep(3)
dr.quit()

register("zhong",5)


from selenium import webdriver
from time import *
from selenium.webdriver import ActionChains

#获取浏览器驱动(获取浏览器的控制权)
dr=webdriver.Chrome()

#添加隐式等待(提高执行效率)
dr.implicitly_wait(10)

#打开百度首页
#dr.get("https://www.baidu.com")
#dr.get("https://www.so.com")
#dr.get("https://mail.163.com/")
dr.get("http://192.168.3.66/ecshop/index.php")
#窗口最大化
dr.maximize_window()


#输入搜素内容,点击搜素按钮
dr.find_element_by_name("q").send_keys("selenium")
dr.find_element_by_id("search-button").submit()

#等待时间
sleep(5)

#判断页面元素是否存在
t1=dr.find_element_by_link_text("360搜索首页")
t2=t1.is_displayed()
print(t2)

#定位设置元素,执行鼠标悬停操作
shezhi=dr.find_element_by_link_text("设置")
ActionChains(dr).move_to_element(shezhi).perform()

#点击搜索设置
dr.find_element_by_link_text("搜索设置").click()
sleep(2)
#点击设置
dr.find_element_by_link_text("保存设置").click()


#获取警告框的文本信息
t1=dr.switch_to.alert.text
print(t1)
sleep(2)
#点击确定
dr.switch_to.alert.accept()
#取消警告框
#dr.switch_to.alert.dismiss()

#网易点击密码登录
dr.find_element_by_link_text("密码登录").click()

#网易切换表单(含有iframe 是嵌套表单)
f1=dr.find_element_by_xpath("//iframe[@scrolling=\'no\']")
dr.switch_to.frame(f1)

#网易输入账号
dr.find_element_by_name("email").send_keys("123")
#dr.find_element_by_id("dologin").submit()

#切换到默认表单
dr.switch_to.default_content()

#点击企业邮箱
dr.find_element_by_link_text("企业邮箱").click()

#获取当前的所有窗口句柄
windows=dr.window_handles
print(windows)
#切换到当前窗口
dr.switch_to.window(windows[1])

dr.find_element_by_id("regContactName").send_keys("456")


#操作滚动条
dr.execute_script("window.scrollTo(0,3000);")
sleep(3)
dr.execute_script("window.scrollTo(0,0);")

#关闭浏览器
sleep(10)
#关闭当前窗口
#dr.close()
#关闭所有窗口和驱动
dr.quit()
\'\'\'
###eschop后台时间设置
from selenium import webdriver
from time import *
from selenium.webdriver import ActionChains
from datetime import *

#获取浏览器驱动(获取浏览器的控制权)
dr=webdriver.Chrome()

#添加隐式等待(提高执行效率)
dr.implicitly_wait(10)

#打开ecshop登录页面
dr.get("http://192.168.3.250/ecshop/admin/privilege.php?act=logout")

#窗口最大化
dr.maximize_window()

#输入账号密码
dr.find_element_by_name("username").send_keys("admin")
dr.find_element_by_name("password").send_keys("admin888")

#点击登录
dr.find_element_by_css_selector("input[type=\'submit\']").click()

#切换表单1(含有iframe 是嵌套表单)
f1=dr.find_element_by_xpath("//frame[@id=\'menu-frame\']")
dr.switch_to.frame(f1)

#点击商品列表
dr.find_element_by_link_text("夺宝奇兵").click()
#切换默认表单
dr.switch_to.default_content()

#切换表单3
f2=dr.find_element_by_id("main-frame")
dr.switch_to.frame(f2)

#点击夺宝奇兵
dr.find_element_by_link_text("添加夺宝奇兵").click()

#输入活动名称
dr.find_element_by_name("snatch_name").send_keys("夺宝奇兵之810")
dr.find_element_by_name("keywords").send_keys("A810")
#点击搜索
dr.find_element_by_xpath("//input[@value=\' 搜索 \']").click()
#调用js删除readonly属性
js="document.querySelectorAll(\'#start_time_id\')[0].removeAttribute(\'readonly\')"
dr.execute_script(js)
#把原来默认时间清空
dr.find_element_by_css_selector("#start_time_id").clear()

#输入活动开始时间
dr.find_element_by_css_selector("#start_time_id").send_keys(str(date.today()+timedelta(2))+" 00:00")

#打印网页源代码
text1=self.dr.page_source
print(text1)
self.assertIn("发表留言成功",text1)